@shepai/cli 1.78.1-pr241.ee88d2d → 1.78.1-pr246.ca9db57

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 (348) hide show
  1. package/apis/json-schema/Attachment.yaml +31 -0
  2. package/apis/json-schema/Feature.yaml +5 -0
  3. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  4. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +35 -3
  6. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +7 -1
  7. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  8. package/dist/packages/core/src/domain/generated/output.d.ts +33 -0
  9. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/di/container.js +3 -0
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +11 -0
  17. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts +28 -0
  18. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.d.ts.map +1 -0
  19. package/dist/packages/core/src/infrastructure/services/attachment-storage.service.js +125 -0
  20. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  21. package/dist/src/presentation/cli/commands/feat/new.command.js +21 -1
  22. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  23. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -14
  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/api/attachments/upload/route.d.ts +3 -0
  31. package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts.map +1 -0
  32. package/dist/src/presentation/web/app/api/attachments/upload/route.js +101 -0
  33. package/dist/src/presentation/web/app/build-feature-node-data.d.ts +1 -7
  34. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  35. package/dist/src/presentation/web/app/build-feature-node-data.js +1 -7
  36. package/dist/src/presentation/web/app/build-graph-nodes.js +3 -7
  37. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts +16 -0
  38. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.d.ts.map +1 -0
  39. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.js +53 -0
  40. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts +12 -0
  41. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.d.ts.map +1 -0
  42. package/dist/src/presentation/web/components/common/attachment-card/attachment-card.stories.js +55 -0
  43. package/dist/src/presentation/web/components/common/attachment-card/index.d.ts +3 -0
  44. package/dist/src/presentation/web/components/common/attachment-card/index.d.ts.map +1 -0
  45. package/dist/src/presentation/web/components/common/attachment-card/index.js +1 -0
  46. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +19 -7
  47. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +6 -6
  49. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +85 -48
  51. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +11 -2
  52. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +194 -59
  54. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +6 -0
  55. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +18 -0
  57. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts +9 -0
  58. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -0
  59. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +60 -0
  60. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts +47 -0
  61. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -0
  62. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +307 -0
  63. package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts +1 -1
  64. package/dist/src/presentation/web/components/common/feature-drawer/index.d.ts.map +1 -1
  65. package/dist/src/presentation/web/components/common/feature-drawer/index.js +1 -1
  66. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +0 -12
  67. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/common/index.d.ts +4 -3
  69. package/dist/src/presentation/web/components/common/index.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/common/index.js +4 -3
  71. package/dist/src/presentation/web/components/common/merge-review/index.d.ts +2 -1
  72. package/dist/src/presentation/web/components/common/merge-review/index.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/common/merge-review/index.js +1 -0
  74. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts +3 -0
  75. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.d.ts.map +1 -0
  76. package/dist/src/presentation/web/components/common/merge-review/merge-review-drawer.js +8 -0
  77. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts +8 -0
  78. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.d.ts.map +1 -1
  79. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +33 -1
  80. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts +2 -1
  81. package/dist/src/presentation/web/components/common/prd-questionnaire/index.d.ts.map +1 -1
  82. package/dist/src/presentation/web/components/common/prd-questionnaire/index.js +1 -0
  83. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts +3 -0
  84. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.d.ts.map +1 -0
  85. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.js +8 -0
  86. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +10 -0
  87. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
  88. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +38 -1
  89. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts +3 -0
  90. package/dist/src/presentation/web/components/common/review-drawer-shell/index.d.ts.map +1 -0
  91. package/dist/src/presentation/web/components/common/review-drawer-shell/index.js +1 -0
  92. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts +26 -0
  93. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.d.ts.map +1 -0
  94. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell-config.js +1 -0
  95. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts +3 -0
  96. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.d.ts.map +1 -0
  97. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.js +29 -0
  98. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts +14 -0
  99. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.d.ts.map +1 -0
  100. package/dist/src/presentation/web/components/common/review-drawer-shell/review-drawer-shell.stories.js +33 -0
  101. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts +2 -1
  102. package/dist/src/presentation/web/components/common/tech-decisions-review/index.d.ts.map +1 -1
  103. package/dist/src/presentation/web/components/common/tech-decisions-review/index.js +1 -0
  104. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts +3 -0
  105. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.d.ts.map +1 -0
  106. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-drawer.js +8 -0
  107. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +8 -0
  108. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
  109. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +29 -1
  110. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts +3 -0
  111. package/dist/src/presentation/web/components/common/tech-review-tabs/index.d.ts.map +1 -0
  112. package/dist/src/presentation/web/components/common/tech-review-tabs/index.js +1 -0
  113. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts +21 -0
  114. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.d.ts.map +1 -0
  115. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs-config.js +1 -0
  116. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts +3 -0
  117. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.d.ts.map +1 -0
  118. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.js +12 -0
  119. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts +16 -0
  120. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.d.ts.map +1 -0
  121. package/dist/src/presentation/web/components/common/tech-review-tabs/tech-review-tabs.stories.js +110 -0
  122. package/dist/src/presentation/web/next.config.d.ts.map +1 -1
  123. package/dist/src/presentation/web/next.config.js +6 -0
  124. package/dist/tsconfig.build.tsbuildinfo +1 -1
  125. package/package.json +1 -1
  126. package/web/.next/BUILD_ID +1 -1
  127. package/web/.next/app-path-routes-manifest.json +1 -1
  128. package/web/.next/build-manifest.json +2 -2
  129. package/web/.next/fallback-build-manifest.json +2 -2
  130. package/web/.next/prerender-manifest.json +3 -3
  131. package/web/.next/required-server-files.js +3 -0
  132. package/web/.next/required-server-files.json +3 -0
  133. package/web/.next/routes-manifest.json +6 -6
  134. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  135. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  136. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -68
  138. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  139. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  142. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  143. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  145. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  146. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  147. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -68
  148. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  149. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  150. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  152. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  153. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  154. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  155. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  156. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/app/_global-error.html +2 -2
  158. package/web/.next/server/app/_global-error.rsc +1 -1
  159. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  160. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  161. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  162. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  163. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  164. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  165. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  166. package/web/.next/server/app/api/attachments/upload/route/app-paths-manifest.json +3 -0
  167. package/web/.next/server/app/api/attachments/upload/route.js +7 -0
  168. package/web/.next/server/app/api/attachments/upload/route.js.nft.json +1 -0
  169. package/web/.next/server/app/api/attachments/upload/route_client-reference-manifest.js +2 -0
  170. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  171. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  172. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  173. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  174. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  175. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  177. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  178. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  179. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  180. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  181. package/web/.next/server/app-paths-manifest.json +1 -1
  182. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  183. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js +3 -0
  184. package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js +3 -0
  185. package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  187. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  189. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  191. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  196. package/web/.next/server/chunks/ssr/{[root-of-the-server]__ae824a5b._.js → [root-of-the-server]__a337ca5c._.js} +2 -2
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__a337ca5c._.js.map +1 -0
  198. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js +1 -1
  201. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3a4cef4._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  208. package/web/.next/server/chunks/ssr/{_3e88ce9d._.js → _06db7efd._.js} +2 -2
  209. package/web/.next/server/chunks/ssr/{_3e88ce9d._.js.map → _06db7efd._.js.map} +1 -1
  210. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/_1e3cf73b._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_1e3cf73b._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/_34fbed18._.js +1 -1
  214. package/web/.next/server/chunks/ssr/_34fbed18._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/{_887258d0._.js → _4031d614._.js} +2 -2
  216. package/web/.next/server/chunks/ssr/{_887258d0._.js.map → _4031d614._.js.map} +1 -1
  217. package/web/.next/server/chunks/ssr/_5c4ce700._.js +3 -0
  218. package/web/.next/server/chunks/ssr/{_5d4e7151._.js.map → _5c4ce700._.js.map} +1 -1
  219. package/web/.next/server/chunks/ssr/_63868199._.js +1 -1
  220. package/web/.next/server/chunks/ssr/_63868199._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  223. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/{_4b251edf._.js → _c66a5a32._.js} +2 -2
  225. package/web/.next/server/chunks/ssr/{_4b251edf._.js.map → _c66a5a32._.js.map} +1 -1
  226. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  227. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  228. package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js +3 -0
  229. package/web/.next/server/chunks/ssr/node_modules__pnpm_5412e589._.js.map +1 -0
  230. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +3 -0
  231. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +3 -0
  233. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -0
  234. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  239. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  240. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js +1 -1
  241. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_get-graph-data_ts_b018483e._.js.map +1 -1
  242. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -3
  243. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js +3 -0
  245. package/web/.next/server/chunks/ssr/src_presentation_web_components_80b5b4bc._.js.map +1 -0
  246. package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js +3 -0
  247. package/web/.next/server/chunks/ssr/src_presentation_web_components_82416b8f._.js.map +1 -0
  248. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  249. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  250. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -3
  251. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  252. package/web/.next/server/pages/500.html +2 -2
  253. package/web/.next/server/server-reference-manifest.js +1 -1
  254. package/web/.next/server/server-reference-manifest.json +64 -108
  255. package/web/.next/static/chunks/{2a24ac257fc1c10b.js → 1f57d0c949dbb44d.js} +1 -1
  256. package/web/.next/static/chunks/27a7dd213b6da211.js +1 -0
  257. package/web/.next/static/chunks/{a2a8c7488178523b.js → 294840464b615929.js} +2 -2
  258. package/web/.next/static/chunks/2a0156732d824304.js +1 -0
  259. package/web/.next/static/chunks/55cfb5d3bc98f2e9.js +1 -0
  260. package/web/.next/static/chunks/6a3e8ea6e1fd2113.js +1 -0
  261. package/web/.next/static/chunks/{40b4ba55a08cc340.js → 6beed3db056fe481.js} +1 -1
  262. package/web/.next/static/chunks/{1ed35030fddfaf83.js → 76ddfd21093dc7e7.js} +1 -1
  263. package/web/.next/static/chunks/b0c8d477fe52559a.js +1 -0
  264. package/web/.next/static/chunks/{1943a885d38cec14.js → ca4247da9701312c.js} +2 -2
  265. package/web/.next/static/chunks/e933e992fdc663fb.js +1 -0
  266. package/web/.next/static/chunks/f6f770ab32a69286.css +2 -0
  267. package/web/.next/static/chunks/{bdf60cf8dc75a90f.js → f7ed5cfe0c81a863.js} +1 -1
  268. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts +0 -17
  269. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +0 -1
  270. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +0 -25
  271. package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts +0 -18
  272. package/dist/src/presentation/web/app/actions/get-feature-plan.d.ts.map +0 -1
  273. package/dist/src/presentation/web/app/actions/get-feature-plan.js +0 -31
  274. package/dist/src/presentation/web/app/api/feature-logs/route.d.ts +0 -16
  275. package/dist/src/presentation/web/app/api/feature-logs/route.d.ts.map +0 -1
  276. package/dist/src/presentation/web/app/api/feature-logs/route.js +0 -184
  277. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts +0 -8
  278. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +0 -1
  279. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +0 -90
  280. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +0 -20
  281. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +0 -1
  282. package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +0 -252
  283. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +0 -31
  284. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +0 -1
  285. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +0 -123
  286. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts +0 -20
  287. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.d.ts.map +0 -1
  288. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.stories.js +0 -315
  289. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts +0 -3
  290. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.d.ts.map +0 -1
  291. package/dist/src/presentation/web/components/common/feature-drawer-tabs/index.js +0 -1
  292. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts +0 -7
  293. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.d.ts.map +0 -1
  294. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.js +0 -35
  295. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts +0 -18
  296. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.d.ts.map +0 -1
  297. package/dist/src/presentation/web/components/common/feature-drawer-tabs/log-tab.stories.js +0 -89
  298. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts +0 -6
  299. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +0 -1
  300. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +0 -78
  301. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +0 -28
  302. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +0 -1
  303. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +0 -157
  304. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts +0 -8
  305. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.d.ts.map +0 -1
  306. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.js +0 -40
  307. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts +0 -22
  308. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.d.ts.map +0 -1
  309. package/dist/src/presentation/web/components/common/feature-drawer-tabs/plan-tab.stories.js +0 -188
  310. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts +0 -30
  311. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.d.ts.map +0 -1
  312. package/dist/src/presentation/web/components/common/feature-drawer-tabs/use-tab-data-fetch.js +0 -100
  313. package/dist/src/presentation/web/hooks/use-feature-logs.d.ts +0 -7
  314. package/dist/src/presentation/web/hooks/use-feature-logs.d.ts.map +0 -1
  315. package/dist/src/presentation/web/hooks/use-feature-logs.js +0 -52
  316. package/web/.next/server/app/api/feature-logs/route/app-paths-manifest.json +0 -3
  317. package/web/.next/server/app/api/feature-logs/route.js +0 -6
  318. package/web/.next/server/app/api/feature-logs/route.js.nft.json +0 -1
  319. package/web/.next/server/app/api/feature-logs/route_client-reference-manifest.js +0 -2
  320. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js +0 -3
  321. package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js +0 -12
  322. package/web/.next/server/chunks/[root-of-the-server]__91d44424._.js.map +0 -1
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__ae824a5b._.js.map +0 -1
  324. package/web/.next/server/chunks/ssr/_08bf9375._.js +0 -3
  325. package/web/.next/server/chunks/ssr/_08bf9375._.js.map +0 -1
  326. package/web/.next/server/chunks/ssr/_5d4e7151._.js +0 -3
  327. package/web/.next/server/chunks/ssr/_e7eb01d5._.js +0 -3
  328. package/web/.next/server/chunks/ssr/_e7eb01d5._.js.map +0 -1
  329. package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js +0 -3
  330. package/web/.next/server/chunks/ssr/node_modules__pnpm_d80c1060._.js.map +0 -1
  331. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js +0 -3
  332. package/web/.next/server/chunks/ssr/src_presentation_web_7efa14ca._.js.map +0 -1
  333. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js +0 -3
  334. package/web/.next/server/chunks/ssr/src_presentation_web_b59d79db._.js.map +0 -1
  335. package/web/.next/static/chunks/1ac497a4b2a7a143.js +0 -1
  336. package/web/.next/static/chunks/201456645dc32523.js +0 -1
  337. package/web/.next/static/chunks/46de72d1231c72e6.js +0 -1
  338. package/web/.next/static/chunks/54f920b6a940da52.js +0 -1
  339. package/web/.next/static/chunks/96bab6d3820504f3.css +0 -2
  340. package/web/.next/static/chunks/a1c2ecb710b44081.js +0 -1
  341. package/web/.next/static/chunks/b590b965ec136ece.js +0 -1
  342. /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route/build-manifest.json +0 -0
  343. /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route/server-reference-manifest.json +0 -0
  344. /package/web/.next/server/app/api/{feature-logs → attachments/upload}/route.js.map +0 -0
  345. /package/web/.next/server/chunks/{744ca_web__next-internal_server_app_api_feature-logs_route_actions_177445e7.js.map → 744ca_web__next-internal_server_app_api_attachments_upload_route_actions_48fe4a8f.js.map} +0 -0
  346. /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_buildManifest.js +0 -0
  347. /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_clientMiddlewareManifest.json +0 -0
  348. /package/web/.next/static/{nOcqEXIvW4HbIOdPWtEmW → 2GTN_fvpyiJGx65yUAuBB}/_ssgManifest.js +0 -0
@@ -0,0 +1,307 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
4
+ import { FeatureDrawer } from './feature-drawer.js';
5
+ import { Button } from '../../ui/button.js';
6
+ const meta = {
7
+ title: 'Drawers/Feature/FeatureDrawer',
8
+ component: FeatureDrawer,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'fullscreen',
12
+ },
13
+ };
14
+ export default meta;
15
+ /* ---------------------------------------------------------------------------
16
+ * Data fixtures
17
+ * ------------------------------------------------------------------------- */
18
+ const baseData = {
19
+ name: 'Auth Module',
20
+ featureId: '#f1',
21
+ lifecycle: 'implementation',
22
+ state: 'running',
23
+ progress: 45,
24
+ repositoryPath: '/home/user/my-repo',
25
+ branch: 'feat/auth-module',
26
+ };
27
+ const runningData = {
28
+ name: 'Auth Module',
29
+ description: 'Implement OAuth2 authentication flow',
30
+ featureId: '#f1',
31
+ lifecycle: 'implementation',
32
+ state: 'running',
33
+ progress: 45,
34
+ agentType: 'claude-code',
35
+ repositoryPath: '/home/user/my-repo',
36
+ branch: 'feat/auth-module',
37
+ };
38
+ const actionRequiredData = {
39
+ name: 'API Rate Limiting',
40
+ description: 'Implement sliding window rate limiting for public endpoints',
41
+ featureId: '#bi1',
42
+ lifecycle: 'requirements',
43
+ state: 'action-required',
44
+ progress: 22,
45
+ repositoryPath: '/home/user/my-repo',
46
+ branch: 'feat/api-rate-limiting',
47
+ };
48
+ const doneData = {
49
+ name: 'Payment Gateway',
50
+ description: 'Stripe integration for subscriptions',
51
+ featureId: '#f3',
52
+ lifecycle: 'deploy',
53
+ state: 'done',
54
+ progress: 100,
55
+ runtime: '1h 42m',
56
+ repositoryPath: '/home/user/my-repo',
57
+ branch: 'feat/payment-gateway',
58
+ };
59
+ const blockedData = {
60
+ name: 'Search Index',
61
+ description: 'Elasticsearch full-text search setup',
62
+ featureId: '#f4',
63
+ lifecycle: 'implementation',
64
+ state: 'blocked',
65
+ progress: 20,
66
+ blockedBy: 'Auth Module',
67
+ repositoryPath: '/home/user/my-repo',
68
+ branch: 'feat/search-index',
69
+ };
70
+ const errorData = {
71
+ name: 'Email Service',
72
+ description: 'Transactional email with SendGrid',
73
+ featureId: '#f5',
74
+ lifecycle: 'review',
75
+ state: 'error',
76
+ progress: 30,
77
+ errorMessage: 'Build failed: type mismatch',
78
+ repositoryPath: '/home/user/my-repo',
79
+ branch: 'feat/email-service',
80
+ };
81
+ const reviewInProgressData = {
82
+ name: 'Auth Module',
83
+ description: 'Implement OAuth2 authentication flow',
84
+ featureId: '#f6',
85
+ lifecycle: 'review',
86
+ state: 'running',
87
+ progress: 0,
88
+ agentType: 'claude-code',
89
+ repositoryPath: '/home/user/my-repo',
90
+ branch: 'feat/auth-module',
91
+ pr: {
92
+ url: 'https://github.com/org/repo/pull/17',
93
+ number: 17,
94
+ status: PrStatus.Open,
95
+ },
96
+ };
97
+ /* ---------------------------------------------------------------------------
98
+ * Trigger wrapper — starts closed, click to open
99
+ * ------------------------------------------------------------------------- */
100
+ function DrawerTrigger({ data, label }) {
101
+ const [selected, setSelected] = useState(null);
102
+ return (_jsxs("div", { className: "flex h-screen items-start p-4", children: [_jsx(Button, { variant: "outline", onClick: () => setSelected(data), children: label }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
103
+ }
104
+ /* ---------------------------------------------------------------------------
105
+ * Per-state stories
106
+ * ------------------------------------------------------------------------- */
107
+ /** Feature drawer rendered inside a full-page context — starts open. Primary story. */
108
+ export const Default = {
109
+ render: () => _jsx(FeatureDrawerShellTemplate, { data: runningData }),
110
+ };
111
+ export const Running = {
112
+ render: () => _jsx(DrawerTrigger, { data: runningData, label: "Open Running" }),
113
+ };
114
+ export const ActionRequired = {
115
+ render: () => _jsx(DrawerTrigger, { data: actionRequiredData, label: "Open Action Required" }),
116
+ };
117
+ export const Done = {
118
+ render: () => _jsx(DrawerTrigger, { data: doneData, label: "Open Done" }),
119
+ };
120
+ export const Blocked = {
121
+ render: () => _jsx(DrawerTrigger, { data: blockedData, label: "Open Blocked" }),
122
+ };
123
+ /** Review lifecycle + running state — matches the look/feel of review pending-action drawers. */
124
+ export const ReviewInProgress = {
125
+ render: () => _jsx(DrawerTrigger, { data: reviewInProgressData, label: "Open Review In Progress" }),
126
+ };
127
+ export const Error = {
128
+ render: () => _jsx(DrawerTrigger, { data: errorData, label: "Open Error" }),
129
+ };
130
+ /* ---------------------------------------------------------------------------
131
+ * Edge-case stories
132
+ * ------------------------------------------------------------------------- */
133
+ /** Minimal data — only required fields, no optional details section. */
134
+ export const MinimalData = {
135
+ render: () => _jsx(DrawerTrigger, { data: { ...baseData, progress: 0 }, label: "Open Minimal" }),
136
+ };
137
+ /** All optional fields populated — description, agent, runtime, blockedBy, error. */
138
+ export const AllFields = {
139
+ render: () => (_jsx(DrawerTrigger, { data: {
140
+ name: 'Enterprise Authentication Module',
141
+ description: 'Implement a comprehensive OAuth2 authentication flow with support for multiple identity providers including Google, GitHub, and custom SAML-based enterprise SSO.',
142
+ featureId: '#f99',
143
+ lifecycle: 'implementation',
144
+ state: 'running',
145
+ progress: 68,
146
+ agentType: 'cursor',
147
+ runtime: '3h 15m',
148
+ blockedBy: 'Database Migration',
149
+ errorMessage: 'Token refresh failed: invalid_grant',
150
+ repositoryPath: '/home/user/enterprise-app',
151
+ branch: 'feat/enterprise-auth',
152
+ }, label: "Open All Fields" })),
153
+ };
154
+ /* ---------------------------------------------------------------------------
155
+ * Matrix stories — interactive state/lifecycle switcher
156
+ * ------------------------------------------------------------------------- */
157
+ const creatingData = {
158
+ name: 'User Onboarding',
159
+ description: 'Implement guided onboarding wizard',
160
+ featureId: '',
161
+ lifecycle: 'requirements',
162
+ state: 'creating',
163
+ progress: 0,
164
+ repositoryPath: '/home/user/my-repo',
165
+ branch: '',
166
+ };
167
+ const stateFixtures = {
168
+ creating: creatingData,
169
+ running: runningData,
170
+ 'action-required': actionRequiredData,
171
+ done: doneData,
172
+ blocked: blockedData,
173
+ error: errorData,
174
+ };
175
+ const allLifecycles = [
176
+ 'requirements',
177
+ 'research',
178
+ 'implementation',
179
+ 'review',
180
+ 'deploy',
181
+ 'maintain',
182
+ ];
183
+ function AllStatesRender() {
184
+ const [state, setState] = useState('running');
185
+ const [selected, setSelected] = useState(null);
186
+ const _data = stateFixtures[state];
187
+ return (_jsxs("div", { className: "flex h-screen", children: [_jsxs("div", { className: "flex flex-col gap-2 p-4", children: [_jsx("span", { className: "text-muted-foreground mb-2 text-xs font-semibold tracking-wider uppercase", children: "Select state" }), Object.keys(stateFixtures).map((s) => (_jsx("button", { type: "button", onClick: () => {
188
+ setState(s);
189
+ setSelected(stateFixtures[s]);
190
+ }, className: `rounded-md px-3 py-1.5 text-left text-sm ${s === state ? 'bg-primary text-primary-foreground' : 'bg-muted hover:bg-muted/80'}`, children: s }, s)))] }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
191
+ }
192
+ /** Cycle through all 5 states at a glance via buttons. */
193
+ export const AllStates = {
194
+ render: () => _jsx(AllStatesRender, {}),
195
+ };
196
+ function AllLifecyclesRender() {
197
+ const [lifecycle, setLifecycle] = useState('requirements');
198
+ const [selected, setSelected] = useState(null);
199
+ return (_jsxs("div", { className: "flex h-screen", children: [_jsxs("div", { className: "flex flex-col gap-2 p-4", children: [_jsx("span", { className: "text-muted-foreground mb-2 text-xs font-semibold tracking-wider uppercase", children: "Select phase" }), allLifecycles.map((phase) => (_jsx("button", { type: "button", onClick: () => {
200
+ setLifecycle(phase);
201
+ setSelected({
202
+ name: 'Feature Name',
203
+ description: `Currently in ${phase} phase`,
204
+ featureId: '#f1',
205
+ lifecycle: phase,
206
+ state: 'running',
207
+ progress: 50,
208
+ agentType: 'claude-code',
209
+ repositoryPath: '/home/user/my-repo',
210
+ branch: 'feat/feature-name',
211
+ });
212
+ }, className: `rounded-md px-3 py-1.5 text-left text-sm ${phase === lifecycle
213
+ ? 'bg-primary text-primary-foreground'
214
+ : 'bg-muted hover:bg-muted/80'}`, children: phase }, phase)))] }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
215
+ }
216
+ /** Cycle through all 6 lifecycle phases via buttons. */
217
+ export const AllLifecycles = {
218
+ render: () => _jsx(AllLifecyclesRender, {}),
219
+ };
220
+ /* ---------------------------------------------------------------------------
221
+ * Action button stories
222
+ * ------------------------------------------------------------------------- */
223
+ /** No repositoryPath — action buttons are hidden. */
224
+ export const NoRepositoryPath = {
225
+ render: () => (_jsx(DrawerTrigger, { data: { ...baseData, repositoryPath: '', branch: '' }, label: "Open Without Repo Path" })),
226
+ };
227
+ /**
228
+ * Action buttons visible — click "Open in IDE" or "Open in Shell" to see
229
+ * loading spinner (while API call is in flight) followed by error state
230
+ * (API routes are not available in Storybook).
231
+ */
232
+ export const WithActionButtons = {
233
+ render: () => _jsx(DrawerTrigger, { data: runningData, label: "Open With Actions" }),
234
+ };
235
+ /* ---------------------------------------------------------------------------
236
+ * Delete stories
237
+ * ------------------------------------------------------------------------- */
238
+ function noop() {
239
+ // intentional no-op for stories
240
+ }
241
+ function DrawerTriggerWithDelete({ data, label, isDeleting = false, }) {
242
+ const [selected, setSelected] = useState(null);
243
+ return (_jsxs("div", { className: "flex h-screen items-start p-4", children: [_jsx(Button, { variant: "outline", onClick: () => setSelected(data), children: label }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null), onDelete: noop, isDeleting: isDeleting })] }));
244
+ }
245
+ /** FeatureDrawer with a delete icon button in the header. */
246
+ export const WithDeleteButton = {
247
+ render: () => _jsx(DrawerTriggerWithDelete, { data: doneData, label: "Open With Delete" }),
248
+ };
249
+ /** FeatureDrawer showing the delete button in loading/disabled state. */
250
+ export const DeletingState = {
251
+ render: () => _jsx(DrawerTriggerWithDelete, { data: doneData, label: "Open Deleting State", isDeleting: true }),
252
+ };
253
+ /** FeatureDrawer with a running agent showing the running-agent warning in the AlertDialog. */
254
+ export const DeleteRunningAgent = {
255
+ render: () => _jsx(DrawerTriggerWithDelete, { data: runningData, label: "Open Running Agent Delete" }),
256
+ };
257
+ /* ---------------------------------------------------------------------------
258
+ * PR info stories
259
+ * ------------------------------------------------------------------------- */
260
+ const doneWithPrData = {
261
+ ...doneData,
262
+ pr: {
263
+ url: 'https://github.com/org/repo/pull/42',
264
+ number: 42,
265
+ status: PrStatus.Merged,
266
+ ciStatus: CiStatus.Success,
267
+ commitHash: 'abc1234567890def',
268
+ },
269
+ };
270
+ const doneWithPartialPrData = {
271
+ ...doneData,
272
+ pr: {
273
+ url: 'https://github.com/org/repo/pull/99',
274
+ number: 99,
275
+ status: PrStatus.Merged,
276
+ },
277
+ };
278
+ /** Done feature with full PR card — number, status, CI, commit hash. */
279
+ export const DoneWithPr = {
280
+ render: () => _jsx(DrawerTrigger, { data: doneWithPrData, label: "Open Done + PR" }),
281
+ };
282
+ /** Done feature with partial PR data — no CI status, no commit hash. */
283
+ export const DoneWithPartialPr = {
284
+ render: () => _jsx(DrawerTrigger, { data: doneWithPartialPrData, label: "Open Done + Partial PR" }),
285
+ };
286
+ /** PR with Open status — blue badge. */
287
+ export const PrStatusOpen = {
288
+ render: () => (_jsx(DrawerTrigger, { data: {
289
+ ...doneWithPrData,
290
+ pr: { ...doneWithPrData.pr, status: PrStatus.Open, ciStatus: CiStatus.Pending },
291
+ }, label: "Open PR Status: Open" })),
292
+ };
293
+ /** PR with Merged status — purple badge. */
294
+ export const PrStatusMerged = {
295
+ render: () => _jsx(DrawerTrigger, { data: doneWithPrData, label: "Open PR Status: Merged" }),
296
+ };
297
+ /* ---------------------------------------------------------------------------
298
+ * In-drawer story — full page context, starts open
299
+ * ------------------------------------------------------------------------- */
300
+ function FeatureDrawerShellTemplate({ data }) {
301
+ const [selected, setSelected] = useState(data);
302
+ return (_jsxs("div", { style: { height: '100vh', background: '#f8fafc', padding: '2rem' }, children: [_jsx("button", { type: "button", onClick: () => setSelected(data), style: { padding: '8px 16px', border: '1px solid #ccc', borderRadius: '6px' }, children: "Open Drawer" }), _jsx(FeatureDrawer, { selectedNode: selected, onClose: () => setSelected(null) })] }));
303
+ }
304
+ /** Feature drawer rendered inside a full-page context — starts open. */
305
+ export const InDrawer = {
306
+ render: () => _jsx(FeatureDrawerShellTemplate, { data: runningData }),
307
+ };
@@ -1,2 +1,2 @@
1
- export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './use-feature-actions.js';
1
+ export { FeatureDrawer, type FeatureDrawerProps } from './feature-drawer.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- export { useFeatureActions, } from './use-feature-actions.js';
1
+ export { FeatureDrawer } from './feature-drawer.js';
@@ -34,18 +34,6 @@ export interface FeatureNodeData {
34
34
  agentType?: AgentTypeValue;
35
35
  /** LLM model identifier used for this feature's agent run. */
36
36
  modelId?: string;
37
- /** Feature summary / user query */
38
- summary?: string;
39
- /** Epoch ms or ISO string when the feature was created */
40
- createdAt?: string | number;
41
- /** Repository display name (e.g. "my-repo") */
42
- repositoryName?: string;
43
- /** Base branch the feature was branched from (e.g. "main") */
44
- baseBranch?: string;
45
- /** AI-generated one-line description of the feature (from spec artifact) */
46
- oneLiner?: string;
47
- /** Original user query that initiated this feature */
48
- userQuery?: string;
49
37
  /** PR metadata for features with an associated pull request */
50
38
  pr?: {
51
39
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CA6DnF,CAAC"}
1
+ {"version":3,"file":"feature-node-state-config.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/feature-node-state-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAC7B,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOxE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAOvE,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,qBAAqB,CAAC;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,QAAQ,CAAC;QACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CA6DnF,CAAC"}
@@ -3,17 +3,18 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
3
3
  export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
4
4
  export { EmptyState, type EmptyStateProps } from './empty-state/index.js';
5
5
  export { FeatureCreateDrawer, type FeatureCreateDrawerProps, type FeatureCreatePayload, } from './feature-create-drawer/index.js';
6
- export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './feature-drawer/index.js';
6
+ export { FeatureDrawer, type FeatureDrawerProps } from './feature-drawer/index.js';
7
7
  export { FeatureListItem, type FeatureListItemProps } from './feature-list-item/index.js';
8
+ export { useFeatureActions, type FeatureActionsInput, type FeatureActionsState, } from './feature-drawer/use-feature-actions.js';
8
9
  export { FeatureNode, featureNodeStateConfig, type FeatureNodeState, type FeatureLifecyclePhase, type FeatureNodeData, type FeatureNodeType, type FeatureNodeStateConfig, } from './feature-node/index.js';
9
10
  export { FeatureStatusBadges, type FeatureStatusBadgesProps } from './feature-status-badges/index.js';
10
11
  export { FeatureStatusGroup, type FeatureStatusGroupProps } from './feature-status-group/index.js';
11
12
  export { LoadingSkeleton } from './loading-skeleton/index.js';
12
13
  export { RepositoryNode, type RepositoryNodeData, type RepositoryNodeType, } from './repository-node/index.js';
13
14
  export { PageHeader } from './page-header/index.js';
14
- export { PrdQuestionnaire, type PrdQuestionnaireProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
15
+ export { PrdQuestionnaire, PrdQuestionnaireDrawer, type PrdQuestionnaireProps, type PrdQuestionnaireDrawerProps, type PrdQuestion, type PrdFinalAction, type PrdOption, type PrdQuestionnaireData, } from './prd-questionnaire/index.js';
15
16
  export { ShepLogo, type ShepLogoProps } from './shep-logo/index.js';
16
- export { TechDecisionsReview, type TechDecisionsReviewProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
17
+ export { TechDecisionsReview, TechDecisionsDrawer, type TechDecisionsReviewProps, type TechDecisionsDrawerProps, type TechDecisionsReviewData, } from './tech-decisions-review/index.js';
17
18
  export { SidebarCollapseToggle, type SidebarCollapseToggleProps } from './sidebar-collapse-toggle/index.js';
18
19
  export { SidebarNavItem, type SidebarNavItemProps } from './sidebar-nav-item/index.js';
19
20
  export { SidebarSectionHeader, type SidebarSectionHeaderProps } from './sidebar-section-header/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -3,17 +3,18 @@ export { AddRepositoryButton } from './add-repository-button/index.js';
3
3
  export { ElapsedTime, formatElapsed } from './elapsed-time/index.js';
4
4
  export { EmptyState } from './empty-state/index.js';
5
5
  export { FeatureCreateDrawer, } from './feature-create-drawer/index.js';
6
- export { useFeatureActions, } from './feature-drawer/index.js';
6
+ export { FeatureDrawer } from './feature-drawer/index.js';
7
7
  export { FeatureListItem } from './feature-list-item/index.js';
8
+ export { useFeatureActions, } from './feature-drawer/use-feature-actions.js';
8
9
  export { FeatureNode, featureNodeStateConfig, } from './feature-node/index.js';
9
10
  export { FeatureStatusBadges } from './feature-status-badges/index.js';
10
11
  export { FeatureStatusGroup } from './feature-status-group/index.js';
11
12
  export { LoadingSkeleton } from './loading-skeleton/index.js';
12
13
  export { RepositoryNode, } from './repository-node/index.js';
13
14
  export { PageHeader } from './page-header/index.js';
14
- export { PrdQuestionnaire, } from './prd-questionnaire/index.js';
15
+ export { PrdQuestionnaire, PrdQuestionnaireDrawer, } from './prd-questionnaire/index.js';
15
16
  export { ShepLogo } from './shep-logo/index.js';
16
- export { TechDecisionsReview, } from './tech-decisions-review/index.js';
17
+ export { TechDecisionsReview, TechDecisionsDrawer, } from './tech-decisions-review/index.js';
17
18
  export { SidebarCollapseToggle } from './sidebar-collapse-toggle/index.js';
18
19
  export { SidebarNavItem } from './sidebar-nav-item/index.js';
19
20
  export { SidebarSectionHeader } from './sidebar-section-header/index.js';
@@ -1,3 +1,4 @@
1
1
  export { MergeReview } from './merge-review.js';
2
- export type { MergeReviewProps, MergeReviewData } from './merge-review-config.js';
2
+ export { MergeReviewDrawer } from './merge-review-drawer.js';
3
+ export type { MergeReviewProps, MergeReviewDrawerProps, MergeReviewData, } from './merge-review-config.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
@@ -1 +1,2 @@
1
1
  export { MergeReview } from './merge-review.js';
2
+ export { MergeReviewDrawer } from './merge-review-drawer.js';
@@ -0,0 +1,3 @@
1
+ import type { MergeReviewDrawerProps } from './merge-review-config.js';
2
+ export declare function MergeReviewDrawer({ open, onClose, featureName, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...reviewProps }: MergeReviewDrawerProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=merge-review-drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-review-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review-drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,GAAG,WAAW,EACf,EAAE,sBAAsB,2CAsBxB"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Loader2 } from 'lucide-react';
4
+ import { ReviewDrawerShell } from '../../common/review-drawer-shell/index.js';
5
+ import { MergeReview } from './merge-review.js';
6
+ export function MergeReviewDrawer({ open, onClose, featureName, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...reviewProps }) {
7
+ return (_jsx(ReviewDrawerShell, { open: open, onClose: onClose, featureName: featureName, featureId: featureId, repositoryPath: repositoryPath, branch: branch, specPath: specPath, onDelete: onDelete, isDeleting: isDeleting, children: data ? (_jsx(MergeReview, { data: data, ...reviewProps })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) }));
8
+ }
@@ -1,5 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { MergeReview } from './merge-review.js';
3
+ import { MergeReviewDrawer } from './merge-review-drawer.js';
3
4
  declare const meta: Meta<typeof MergeReview>;
4
5
  export default meta;
5
6
  type Story = StoryObj<typeof MergeReview>;
@@ -21,4 +22,11 @@ export declare const NoPrWithDiff: Story;
21
22
  export declare const NoPrNoDiff: Story;
22
23
  /** With implementation phases shown. */
23
24
  export declare const WithPhases: Story;
25
+ type DrawerStory = StoryObj<typeof MergeReviewDrawer>;
26
+ /** Merge review drawer with full data. */
27
+ export declare const InDrawer: DrawerStory;
28
+ /** Drawer with delete button visible. */
29
+ export declare const WithDeleteButton: DrawerStory;
30
+ /** Drawer without PR — direct merge with diff summary and branch info. */
31
+ export declare const InDrawerNoPr: DrawerStory;
24
32
  //# sourceMappingURL=merge-review.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-review.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsC7C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,KAS1B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC"}
1
+ {"version":3,"file":"merge-review.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/merge-review/merge-review.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAsC1D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,KAS1B,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAIF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA6BtD,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,WAYtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,WAa9B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,YAAY,EAAE,WAiB1B,CAAC"}
@@ -1,7 +1,9 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { fn } from '@storybook/test';
3
4
  import { PrStatus, CiStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
4
5
  import { MergeReview } from './merge-review.js';
6
+ import { MergeReviewDrawer } from './merge-review-drawer.js';
5
7
  const fullPr = {
6
8
  url: 'https://github.com/shep-ai/cli/pull/42',
7
9
  number: 42,
@@ -130,3 +132,33 @@ export const WithPhases = {
130
132
  ...defaultActions,
131
133
  },
132
134
  };
135
+ const drawerMeta = {
136
+ component: MergeReviewDrawer,
137
+ tags: ['autodocs'],
138
+ parameters: {
139
+ layout: 'fullscreen',
140
+ },
141
+ };
142
+ function DrawerTemplate(props) {
143
+ const [open, setOpen] = useState(true);
144
+ return (_jsxs("div", { style: { height: '100vh', background: '#f8fafc', padding: '2rem' }, children: [_jsx("button", { type: "button", onClick: () => setOpen(true), style: { padding: '8px 16px', border: '1px solid #ccc', borderRadius: '6px' }, children: "Open Drawer" }), _jsx(MergeReviewDrawer, { ...props, open: open, onClose: () => setOpen(false) })] }));
145
+ }
146
+ /** Merge review drawer with full data. */
147
+ export const InDrawer = {
148
+ ...drawerMeta,
149
+ render: () => (_jsx(DrawerTemplate, { featureName: "Add User Authentication", featureId: "FEAT-042", repositoryPath: "/home/user/projects/my-app", branch: "feat/add-auth", data: fullData, ...defaultActions })),
150
+ };
151
+ /** Drawer with delete button visible. */
152
+ export const WithDeleteButton = {
153
+ ...drawerMeta,
154
+ render: () => (_jsx(DrawerTemplate, { featureName: "Add User Authentication", featureId: "FEAT-042", repositoryPath: "/home/user/projects/my-app", branch: "feat/add-auth", data: fullData, ...defaultActions, onDelete: fn().mockName('onDelete') })),
155
+ };
156
+ /** Drawer without PR — direct merge with diff summary and branch info. */
157
+ export const InDrawerNoPr = {
158
+ ...drawerMeta,
159
+ render: () => (_jsx(DrawerTemplate, { featureName: "Fix Login Bug", featureId: "FEAT-099", repositoryPath: "/home/user/projects/my-app", branch: "feat/fix-login", data: {
160
+ branch: { source: 'feat/fix-login', target: 'main' },
161
+ phases: samplePhases,
162
+ diffSummary: fullData.diffSummary,
163
+ }, ...defaultActions, onDelete: fn().mockName('onDelete') })),
164
+ };
@@ -1,3 +1,4 @@
1
1
  export { PrdQuestionnaire } from './prd-questionnaire.js';
2
- export type { PrdQuestionnaireProps, PrdOption, PrdQuestion, PrdFinalAction, PrdQuestionnaireData, } from './prd-questionnaire-config.js';
2
+ export { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
3
+ export type { PrdQuestionnaireProps, PrdQuestionnaireDrawerProps, PrdOption, PrdQuestion, PrdFinalAction, PrdQuestionnaireData, } from './prd-questionnaire-config.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,EACT,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
@@ -1 +1,2 @@
1
1
  export { PrdQuestionnaire } from './prd-questionnaire.js';
2
+ export { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
@@ -0,0 +1,3 @@
1
+ import type { PrdQuestionnaireDrawerProps } from './prd-questionnaire-config.js';
2
+ export declare function PrdQuestionnaireDrawer({ open, onClose, featureName, featureDescription, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...questionnaireProps }: PrdQuestionnaireDrawerProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=prd-questionnaire-drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prd-questionnaire-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire-drawer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAE9E,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,GAAG,kBAAkB,EACtB,EAAE,2BAA2B,2CAuB7B"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Loader2 } from 'lucide-react';
4
+ import { ReviewDrawerShell } from '../../common/review-drawer-shell/index.js';
5
+ import { PrdQuestionnaire } from './prd-questionnaire.js';
6
+ export function PrdQuestionnaireDrawer({ open, onClose, featureName, featureDescription, featureId, repositoryPath, branch, specPath, onDelete, isDeleting, data, ...questionnaireProps }) {
7
+ return (_jsx(ReviewDrawerShell, { open: open, onClose: onClose, featureName: featureName, featureDescription: featureDescription, featureId: featureId, repositoryPath: repositoryPath, branch: branch, specPath: specPath, onDelete: onDelete, isDeleting: isDeleting, children: data ? (_jsx(PrdQuestionnaire, { data: data, ...questionnaireProps })) : (_jsx("div", { className: "flex items-center justify-center p-8", children: _jsx(Loader2, { className: "text-muted-foreground h-6 w-6 animate-spin" }) })) }));
8
+ }
@@ -1,5 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import { PrdQuestionnaire } from './prd-questionnaire.js';
3
+ import { PrdQuestionnaireDrawer } from './prd-questionnaire-drawer.js';
3
4
  declare const meta: Meta<typeof PrdQuestionnaire>;
4
5
  export default meta;
5
6
  type Story = StoryObj<typeof PrdQuestionnaire>;
@@ -13,6 +14,15 @@ export declare const AllAnswered: Story;
13
14
  export declare const Refining: Story;
14
15
  /** Single question — minimal stepper with one step. */
15
16
  export declare const MinimalData: Story;
17
+ type DrawerStory = StoryObj<typeof PrdQuestionnaireDrawer>;
18
+ /** Drawer with stepper — navigate questions one at a time. */
19
+ export declare const InDrawer: DrawerStory;
20
+ /** Drawer with partial selections showing progress dots. */
21
+ export declare const InDrawerWithSelections: DrawerStory;
22
+ /** Drawer with delete button visible. */
23
+ export declare const WithDeleteButton: DrawerStory;
24
+ /** Drawer with delete in progress (button disabled). */
25
+ export declare const DeletingState: DrawerStory;
16
26
  /** All answered with reject button visible on last step. */
17
27
  export declare const WithRejectButton: Story;
18
28
  /** Rejecting state — reject button disabled with spinner while reject action is in flight. */
@@ -1 +1 @@
1
- {"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
1
+ {"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAiKpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAIF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAyC3D,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,EAAE,WAWtB,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,WAepC,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,WAW9B,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,aAAa,EAAE,WAY3B,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}