@shepai/cli 1.83.0 → 1.84.0-pr246.f230189

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 (302) hide show
  1. package/apis/json-schema/Attachment.yaml +31 -0
  2. package/apis/json-schema/Feature.yaml +10 -0
  3. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +3 -0
  5. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  6. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +35 -3
  8. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +7 -1
  9. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  10. package/dist/packages/core/src/domain/generated/output.d.ts +33 -0
  11. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/di/container.js +3 -0
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +16 -0
  19. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts +31 -0
  20. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts.map +1 -0
  21. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.js +136 -0
  22. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  23. package/dist/src/presentation/cli/commands/feat/new.command.js +21 -1
  24. package/dist/src/presentation/web/app/actions/compose-user-input.d.ts +7 -0
  25. package/dist/src/presentation/web/app/actions/compose-user-input.d.ts.map +1 -0
  26. package/dist/src/presentation/web/app/actions/compose-user-input.js +7 -0
  27. package/dist/src/presentation/web/app/actions/create-feature.d.ts +1 -0
  28. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  29. package/dist/src/presentation/web/app/actions/create-feature.js +3 -9
  30. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +6 -0
  31. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
  32. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +26 -1
  33. package/dist/src/presentation/web/app/api/attachments/preview/route.d.ts +4 -0
  34. package/dist/src/presentation/web/app/api/attachments/preview/route.d.ts.map +1 -0
  35. package/dist/src/presentation/web/app/api/attachments/preview/route.js +47 -0
  36. package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts +3 -0
  37. package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts.map +1 -0
  38. package/dist/src/presentation/web/app/api/attachments/upload/route.js +100 -0
  39. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts +16 -0
  40. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts.map +1 -0
  41. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.js +53 -0
  42. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts +12 -0
  43. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts.map +1 -0
  44. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.js +55 -0
  45. package/dist/src/presentation/web/components/common/attachment-card/index.d.ts +3 -0
  46. package/dist/src/presentation/web/components/common/attachment-card/index.d.ts.map +1 -0
  47. package/dist/src/presentation/web/components/common/attachment-card/index.js +1 -0
  48. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts +11 -0
  49. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts.map +1 -0
  50. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +34 -0
  51. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.d.ts +10 -0
  52. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.d.ts.map +1 -0
  53. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.stories.js +44 -0
  54. package/dist/src/presentation/web/components/common/attachment-chip/index.d.ts +3 -0
  55. package/dist/src/presentation/web/components/common/attachment-chip/index.d.ts.map +1 -0
  56. package/dist/src/presentation/web/components/common/attachment-chip/index.js +1 -0
  57. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +11 -2
  58. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  59. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +199 -60
  60. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +6 -0
  61. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  62. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +18 -0
  63. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts +3 -2
  64. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
  65. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +29 -6
  66. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +2 -0
  67. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +72 -0
  69. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +2 -2
  71. package/dist/src/presentation/web/components/ui/dialog.js +1 -1
  72. package/dist/src/presentation/web/next.config.d.ts.map +1 -1
  73. package/dist/src/presentation/web/next.config.js +6 -0
  74. package/dist/tsconfig.build.tsbuildinfo +1 -1
  75. package/package.json +1 -1
  76. package/web/.next/BUILD_ID +1 -1
  77. package/web/.next/app-path-routes-manifest.json +2 -0
  78. package/web/.next/build-manifest.json +2 -2
  79. package/web/.next/fallback-build-manifest.json +2 -2
  80. package/web/.next/prerender-manifest.json +3 -3
  81. package/web/.next/required-server-files.js +4 -1
  82. package/web/.next/required-server-files.json +4 -1
  83. package/web/.next/routes-manifest.json +12 -0
  84. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  85. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  86. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +21 -21
  89. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  90. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  93. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  94. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  97. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  98. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +21 -21
  101. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  102. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  103. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  105. package/web/.next/server/app/(dashboard)/page.js +2 -2
  106. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  109. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  110. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  111. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/_global-error/page.js +2 -2
  113. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  114. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/_global-error.html +2 -2
  116. package/web/.next/server/app/_global-error.rsc +1 -1
  117. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  118. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  119. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  120. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  121. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  122. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  123. package/web/.next/server/app/_not-found/page.js +2 -2
  124. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  125. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/api/attachments/preview/route/app-paths-manifest.json +3 -0
  127. package/web/.next/server/app/api/attachments/preview/route/build-manifest.json +11 -0
  128. package/web/.next/server/app/api/attachments/preview/route/server-reference-manifest.json +4 -0
  129. package/web/.next/server/app/api/attachments/preview/route.js +7 -0
  130. package/web/.next/server/app/api/attachments/preview/route.js.map +5 -0
  131. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -0
  132. package/web/.next/server/app/api/attachments/preview/route_client-reference-manifest.js +2 -0
  133. package/web/.next/server/app/api/attachments/upload/route/app-paths-manifest.json +3 -0
  134. package/web/.next/server/app/api/attachments/upload/route/build-manifest.json +11 -0
  135. package/web/.next/server/app/api/attachments/upload/route/server-reference-manifest.json +4 -0
  136. package/web/.next/server/app/api/attachments/upload/route.js +7 -0
  137. package/web/.next/server/app/api/attachments/upload/route.js.map +5 -0
  138. package/web/.next/server/app/api/attachments/upload/route.js.nft.json +1 -0
  139. package/web/.next/server/app/api/attachments/upload/route_client-reference-manifest.js +2 -0
  140. package/web/.next/server/app/api/dialog/pick-files/route.js +1 -1
  141. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  142. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  143. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  144. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  145. package/web/.next/server/app/settings/page.js +2 -2
  146. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  147. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  149. package/web/.next/server/app/skills/page.js +5 -4
  150. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  151. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  153. package/web/.next/server/app/tools/page.js +2 -2
  154. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  155. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  157. package/web/.next/server/app/version/page.js +2 -2
  158. package/web/.next/server/app/version/page.js.nft.json +1 -1
  159. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  160. package/web/.next/server/app-paths-manifest.json +2 -0
  161. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  162. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_preview_route_actions_0f48c3e9.js +3 -0
  163. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_preview_route_actions_0f48c3e9.js.map +1 -0
  164. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js +3 -0
  165. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js.map +1 -0
  166. package/web/.next/server/chunks/[root-of-the-server]__0b10355c._.js +3 -0
  167. package/web/.next/server/chunks/[root-of-the-server]__0b10355c._.js.map +1 -0
  168. package/web/.next/server/chunks/{[root-of-the-server]__a6bf88cc._.js → [root-of-the-server]__332c8d91._.js} +2 -2
  169. package/web/.next/server/chunks/{[root-of-the-server]__91d44424._.js → [root-of-the-server]__52c318d1._.js} +2 -2
  170. package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js +3 -0
  171. package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js.map +1 -0
  172. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  173. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_9751e686._.js +3 -0
  175. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_9751e686._.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  177. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  179. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js +3 -0
  181. package/web/.next/server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  183. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js +3 -0
  185. package/web/.next/server/chunks/ssr/[root-of-the-server]__17143953._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  187. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  188. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  189. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3534949f._.js → [root-of-the-server]__8d9536c4._.js} +2 -2
  190. package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js +3 -0
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__9de266fa._.js.map +1 -0
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__b14946f5._.js +10 -0
  195. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c3694f82._.js.map → [root-of-the-server]__b14946f5._.js.map} +1 -1
  196. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/[root-of-the-server]__b65f78cf._.js +3 -0
  199. package/web/.next/server/chunks/ssr/{[root-of-the-server]__55f60c9d._.js.map → [root-of-the-server]__b65f78cf._.js.map} +1 -1
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  201. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/{[root-of-the-server]__ad2b2a3c._.js → [root-of-the-server]__f1a05100._.js} +2 -2
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__f8210f45._.js +3 -0
  204. package/web/.next/server/chunks/ssr/{[root-of-the-server]__01a37f7a._.js.map → [root-of-the-server]__f8210f45._.js.map} +1 -1
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/_1bb131c4._.js +1 -1
  208. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/_1e3cf73b._.js +1 -1
  210. package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/_34fbed18._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_34fbed18._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/_3a4c94e3._.js +1 -1
  214. package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
  216. package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  219. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/_9ac70f88._.js +5 -0
  221. package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -0
  222. package/web/.next/server/chunks/ssr/{_3e88ce9d._.js → _cf366ac8._.js} +2 -2
  223. package/web/.next/server/chunks/ssr/{_3e88ce9d._.js.map → _cf366ac8._.js.map} +1 -1
  224. package/web/.next/server/chunks/ssr/_d42594dd._.js +3 -0
  225. package/web/.next/server/chunks/ssr/_d42594dd._.js.map +1 -0
  226. package/web/.next/server/chunks/ssr/{_1c1bf992._.js → _f95d315b._.js} +2 -2
  227. package/web/.next/server/chunks/ssr/_f95d315b._.js.map +1 -0
  228. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  229. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/node_modules__pnpm_07f6911c._.js +3 -0
  231. package/web/.next/server/chunks/ssr/node_modules__pnpm_07f6911c._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  233. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -3
  239. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  240. package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js +3 -0
  241. package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js +3 -0
  243. package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js.map +1 -0
  244. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  245. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  246. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  247. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
  248. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -3
  249. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  250. package/web/.next/server/pages/500.html +2 -2
  251. package/web/.next/server/server-reference-manifest.js +1 -1
  252. package/web/.next/server/server-reference-manifest.json +28 -28
  253. package/web/.next/static/chunks/01c38223d965f45d.js +1 -0
  254. package/web/.next/static/chunks/06d565dc763cad04.js +1 -0
  255. package/web/.next/static/chunks/{d1e04a49da8d02f9.js → 28aa439fc1b5f6b6.js} +1 -1
  256. package/web/.next/static/chunks/30c827a88342741e.js +1 -0
  257. package/web/.next/static/chunks/46d3853fdf7c5efc.js +1 -0
  258. package/web/.next/static/chunks/48650231d9933738.js +1 -0
  259. package/web/.next/static/chunks/50f89c3112f6dd23.css +2 -0
  260. package/web/.next/static/chunks/52b56677c842e45f.js +3 -0
  261. package/web/.next/static/chunks/7d1c741ac3db2eae.js +1 -0
  262. package/web/.next/static/chunks/{996902d74a48276d.js → 96a1c17f680f9aa6.js} +1 -1
  263. package/web/.next/static/chunks/{34f6df8ccffe5d52.js → abf7985ed51675bb.js} +1 -1
  264. package/web/.next/static/chunks/{0fb7745c30469b39.js → b31f2c82654437a6.js} +1 -1
  265. package/web/.next/static/chunks/{2d4cc4000f402d7f.js → b59390a4c830ad08.js} +3 -3
  266. package/web/.next/static/chunks/b5d6f0436f9bbe9b.js +1 -0
  267. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_c7cfe351._.js +0 -3
  268. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_c7cfe351._.js.map +0 -1
  269. package/web/.next/server/chunks/ssr/[root-of-the-server]__01a37f7a._.js +0 -3
  270. package/web/.next/server/chunks/ssr/[root-of-the-server]__55f60c9d._.js +0 -3
  271. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3694f82._.js +0 -10
  272. package/web/.next/server/chunks/ssr/_1c1bf992._.js.map +0 -1
  273. package/web/.next/server/chunks/ssr/_1f7387a5._.js +0 -3
  274. package/web/.next/server/chunks/ssr/_1f7387a5._.js.map +0 -1
  275. package/web/.next/server/chunks/ssr/_51505c5a._.js +0 -3
  276. package/web/.next/server/chunks/ssr/_51505c5a._.js.map +0 -1
  277. package/web/.next/server/chunks/ssr/_c3a8bcb1._.js +0 -3
  278. package/web/.next/server/chunks/ssr/_c3a8bcb1._.js.map +0 -1
  279. package/web/.next/server/chunks/ssr/node_modules__pnpm_04f4e45f._.js +0 -5
  280. package/web/.next/server/chunks/ssr/node_modules__pnpm_04f4e45f._.js.map +0 -1
  281. package/web/.next/server/chunks/ssr/node_modules__pnpm_c931457d._.js +0 -3
  282. package/web/.next/server/chunks/ssr/node_modules__pnpm_c931457d._.js.map +0 -1
  283. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +0 -3
  284. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +0 -1
  285. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js +0 -3
  286. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +0 -1
  287. package/web/.next/static/chunks/0543f7be533ecb32.js +0 -1
  288. package/web/.next/static/chunks/1e5cf3d452bf9f47.js +0 -1
  289. package/web/.next/static/chunks/2a24ac257fc1c10b.js +0 -1
  290. package/web/.next/static/chunks/6e77201e99d50131.js +0 -1
  291. package/web/.next/static/chunks/96bab6d3820504f3.css +0 -2
  292. package/web/.next/static/chunks/a453628f546647a7.js +0 -1
  293. package/web/.next/static/chunks/d9829b5681886395.js +0 -1
  294. package/web/.next/static/chunks/e405f0502431ea60.js +0 -3
  295. package/web/.next/static/chunks/ed0297ac085a1f85.js +0 -1
  296. /package/web/.next/server/chunks/{[root-of-the-server]__a6bf88cc._.js.map → [root-of-the-server]__332c8d91._.js.map} +0 -0
  297. /package/web/.next/server/chunks/{[root-of-the-server]__91d44424._.js.map → [root-of-the-server]__52c318d1._.js.map} +0 -0
  298. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__3534949f._.js.map → [root-of-the-server]__8d9536c4._.js.map} +0 -0
  299. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__ad2b2a3c._.js.map → [root-of-the-server]__f1a05100._.js.map} +0 -0
  300. /package/web/.next/static/{W2fL0P9VKhEH6f0RCcR8s → e0oQotcTVoj0dtOxfFjEK}/_buildManifest.js +0 -0
  301. /package/web/.next/static/{W2fL0P9VKhEH6f0RCcR8s → e0oQotcTVoj0dtOxfFjEK}/_clientMiddlewareManifest.json +0 -0
  302. /package/web/.next/static/{W2fL0P9VKhEH6f0RCcR8s → e0oQotcTVoj0dtOxfFjEK}/_ssgManifest.js +0 -0
@@ -216,6 +216,78 @@ export const Error = {
216
216
  error: 'Failed to load phase timings. Please try again.',
217
217
  },
218
218
  };
219
+ /** Rejection — shows rejected lifecycle event with user feedback text. */
220
+ export const WithRejection = {
221
+ args: {
222
+ timings: [
223
+ {
224
+ agentRunId: 'run-1',
225
+ phase: 'run:started',
226
+ startedAt: '2025-01-15T10:00:00Z',
227
+ durationMs: 0,
228
+ },
229
+ {
230
+ agentRunId: 'run-1',
231
+ phase: 'analyze',
232
+ startedAt: '2025-01-15T10:00:01Z',
233
+ completedAt: '2025-01-15T10:00:15Z',
234
+ durationMs: 14000,
235
+ },
236
+ {
237
+ agentRunId: 'run-1',
238
+ phase: 'requirements',
239
+ startedAt: '2025-01-15T10:00:15Z',
240
+ completedAt: '2025-01-15T10:01:45Z',
241
+ durationMs: 90000,
242
+ waitingApprovalAt: '2025-01-15T10:01:00Z',
243
+ approvalWaitMs: 30000,
244
+ },
245
+ {
246
+ agentRunId: 'run-1',
247
+ phase: 'run:rejected',
248
+ startedAt: '2025-01-15T10:01:45Z',
249
+ durationMs: 0,
250
+ },
251
+ {
252
+ agentRunId: 'run-1',
253
+ phase: 'run:resumed',
254
+ startedAt: '2025-01-15T10:02:00Z',
255
+ durationMs: 0,
256
+ },
257
+ {
258
+ agentRunId: 'run-1',
259
+ phase: 'requirements:2',
260
+ startedAt: '2025-01-15T10:02:01Z',
261
+ completedAt: '2025-01-15T10:03:30Z',
262
+ durationMs: 89000,
263
+ waitingApprovalAt: '2025-01-15T10:03:00Z',
264
+ approvalWaitMs: 15000,
265
+ },
266
+ {
267
+ agentRunId: 'run-1',
268
+ phase: 'research',
269
+ startedAt: '2025-01-15T10:03:30Z',
270
+ completedAt: '2025-01-15T10:05:00Z',
271
+ durationMs: 90000,
272
+ },
273
+ {
274
+ agentRunId: 'run-1',
275
+ phase: 'run:completed',
276
+ startedAt: '2025-01-15T10:05:00Z',
277
+ durationMs: 0,
278
+ },
279
+ ],
280
+ rejectionFeedback: [
281
+ {
282
+ iteration: 1,
283
+ message: 'The requirements are missing error handling for edge cases',
284
+ phase: 'requirements',
285
+ },
286
+ ],
287
+ loading: false,
288
+ error: null,
289
+ },
290
+ };
219
291
  /** Approval wait indicators — phases with approval wait sub-rows. */
220
292
  export const WithApprovalWaits = {
221
293
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAaxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAiD3F,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAG3B,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAmBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,EAAE,sBAAsB,2CA2MxB"}
1
+ {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAaxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAiD3F,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAG3B,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,EAAE,sBAAsB,2CA4MxB"}
@@ -51,7 +51,7 @@ async function fetchActivity(featureId) {
51
51
  const result = await getFeaturePhaseTimings(featureId);
52
52
  if ('error' in result)
53
53
  throw new Error(result.error);
54
- return result.timings;
54
+ return { timings: result.timings, rejectionFeedback: result.rejectionFeedback };
55
55
  }
56
56
  async function fetchPlan(featureId) {
57
57
  const result = await getFeaturePlan(featureId);
@@ -115,7 +115,7 @@ export function FeatureDrawerTabs({ featureNode, featureId, initialTab, prdData,
115
115
  fetchTab(tab);
116
116
  }
117
117
  }, [fetchTab]);
118
- return (_jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: _jsxs(Tabs, { value: activeTab, onValueChange: handleTabChange, className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "shrink-0 overflow-x-auto px-4 pt-4", children: _jsx(TabsList, { className: "flex w-full", children: visibleTabDefs.map((tab) => (_jsx(TabsTrigger, { value: tab.key, className: "flex-1", children: tab.label }, tab.key))) }) }), _jsx(TabsContent, { value: "overview", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(OverviewTab, { data: featureNode }) }), _jsx(TabsContent, { value: "activity", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(ActivityTab, { timings: tabs.activity.data, loading: tabs.activity.loading, error: tabs.activity.error }) }), _jsx(TabsContent, { value: "log", className: "mt-0 flex-1 overflow-hidden", children: _jsx(LogTab, { content: featureLogs.content, isConnected: featureLogs.isConnected, error: featureLogs.error }) }), _jsx(TabsContent, { value: "plan", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(PlanTab, { plan: tabs.plan.data, loading: tabs.plan.loading, error: tabs.plan.error }) }), visibleTabs.includes('prd-review') ? (_jsx(TabsContent, { value: "prd-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections ?? {}, onSelect: onPrdSelect ?? (() => undefined), onApprove: onPrdApprove ?? (() => undefined), onReject: onPrdReject, isProcessing: isPrdLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('tech-decisions') ? (_jsx(TabsContent, { value: "tech-decisions", className: "mt-0 flex min-h-0 flex-1 flex-col", children: techData ? (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(TechDecisionsContent, { data: techData }) }), _jsx(DrawerActionBarForTech, { onApprove: onTechApprove ?? (() => undefined), onReject: onTechReject, isProcessing: isTechLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })] })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('product-decisions') ? (_jsx(TabsContent, { value: "product-decisions", className: "mt-0 flex-1 overflow-y-auto", children: productData === null ? (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) : productData ? (_jsx(ProductDecisionsSummary, { data: productData })) : (_jsx("p", { className: "text-muted-foreground p-4 text-center text-sm", children: "No product decisions available." })) })) : null, visibleTabs.includes('merge-review') ? (_jsx(TabsContent, { value: "merge-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: mergeData ? (_jsx(MergeReview, { data: mergeData, onApprove: onMergeApprove ?? (() => undefined), onReject: onMergeReject, isProcessing: isMergeLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null] }) }));
118
+ return (_jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: _jsxs(Tabs, { value: activeTab, onValueChange: handleTabChange, className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "shrink-0 overflow-x-auto px-4 pt-4", children: _jsx(TabsList, { className: "flex w-full", children: visibleTabDefs.map((tab) => (_jsx(TabsTrigger, { value: tab.key, className: "flex-1", children: tab.label }, tab.key))) }) }), _jsx(TabsContent, { value: "overview", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(OverviewTab, { data: featureNode }) }), _jsx(TabsContent, { value: "activity", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(ActivityTab, { timings: tabs.activity.data?.timings ?? null, loading: tabs.activity.loading, error: tabs.activity.error, rejectionFeedback: tabs.activity.data?.rejectionFeedback }) }), _jsx(TabsContent, { value: "log", className: "mt-0 flex-1 overflow-hidden", children: _jsx(LogTab, { content: featureLogs.content, isConnected: featureLogs.isConnected, error: featureLogs.error }) }), _jsx(TabsContent, { value: "plan", className: "mt-0 flex-1 overflow-y-auto", children: _jsx(PlanTab, { plan: tabs.plan.data, loading: tabs.plan.loading, error: tabs.plan.error }) }), visibleTabs.includes('prd-review') ? (_jsx(TabsContent, { value: "prd-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: prdData ? (_jsx(PrdQuestionnaire, { data: prdData, selections: prdSelections ?? {}, onSelect: onPrdSelect ?? (() => undefined), onApprove: onPrdApprove ?? (() => undefined), onReject: onPrdReject, isProcessing: isPrdLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('tech-decisions') ? (_jsx(TabsContent, { value: "tech-decisions", className: "mt-0 flex min-h-0 flex-1 flex-col", children: techData ? (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx(TechDecisionsContent, { data: techData }) }), _jsx(DrawerActionBarForTech, { onApprove: onTechApprove ?? (() => undefined), onReject: onTechReject, isProcessing: isTechLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })] })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null, visibleTabs.includes('product-decisions') ? (_jsx(TabsContent, { value: "product-decisions", className: "mt-0 flex-1 overflow-y-auto", children: productData === null ? (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) : productData ? (_jsx(ProductDecisionsSummary, { data: productData })) : (_jsx("p", { className: "text-muted-foreground p-4 text-center text-sm", children: "No product decisions available." })) })) : null, visibleTabs.includes('merge-review') ? (_jsx(TabsContent, { value: "merge-review", className: "mt-0 flex min-h-0 flex-1 flex-col", children: mergeData ? (_jsx(MergeReview, { data: mergeData, onApprove: onMergeApprove ?? (() => undefined), onReject: onMergeReject, isProcessing: isMergeLoading, isRejecting: isRejecting, chatInput: chatInput, onChatInputChange: onChatInputChange })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) })) : null] }) }));
119
119
  }
120
120
  // ── Private helper ──────────────────────────────────────────────────────
121
121
  function DrawerActionBarForTech({ onApprove, onReject, isProcessing, isRejecting, chatInput, onChatInputChange, }) {
@@ -15,7 +15,7 @@ const DialogOverlay = React.forwardRef(({ className, onClick, ...props }, ref) =
15
15
  onClick?.(e);
16
16
  }, ...props })));
17
17
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
18
- const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('bg-background fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg sm:rounded-lg', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
18
+ const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('bg-background fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg sm:rounded-lg', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none", children: [_jsx(X, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
19
19
  DialogContent.displayName = DialogPrimitive.Content.displayName;
20
20
  const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn('flex flex-col space-y-1.5 text-center sm:text-left', className), ...props }));
21
21
  DialogHeader.displayName = 'DialogHeader';
@@ -1 +1 @@
1
- {"version":3,"file":"next.config.d.ts","sourceRoot":"","sources":["../../../../src/presentation/web/next.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAgCvC,QAAA,MAAM,UAAU,EAAE,UA+BjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"next.config.d.ts","sourceRoot":"","sources":["../../../../src/presentation/web/next.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAgCvC,QAAA,MAAM,UAAU,EAAE,UAsCjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -53,5 +53,11 @@ const nextConfig = {
53
53
  // Use standalone output mode for server-side rendering on demand
54
54
  // This prevents issues with statically prerendering pages that depend on client context
55
55
  output: 'standalone',
56
+ // Allow attachment uploads up to 11 MB (10 MB limit + multipart overhead)
57
+ experimental: {
58
+ serverActions: {
59
+ bodySizeLimit: '11mb',
60
+ },
61
+ },
56
62
  };
57
63
  export default nextConfig;