@shepai/cli 1.123.0 → 1.124.0-pr394.98d0323

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 (288) hide show
  1. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +11 -0
  2. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts +25 -0
  4. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +49 -0
  6. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -0
  7. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +188 -0
  8. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts +33 -0
  9. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.d.ts.map +1 -0
  10. package/dist/packages/core/src/application/use-cases/features/branch-name-utils.js +77 -0
  11. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  13. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +1 -0
  14. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +8 -0
  16. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts +2 -0
  17. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  18. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +39 -0
  19. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts +14 -0
  20. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts.map +1 -0
  21. package/dist/src/presentation/cli/commands/feat/adopt.command.js +46 -0
  22. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  23. package/dist/src/presentation/cli/commands/feat/index.js +3 -1
  24. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts +10 -0
  25. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.d.ts.map +1 -0
  26. package/dist/src/presentation/web/app/(dashboard)/@drawer/adopt/page.js +26 -0
  27. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts +11 -0
  28. package/dist/src/presentation/web/app/actions/adopt-branch.d.ts.map +1 -0
  29. package/dist/src/presentation/web/app/actions/adopt-branch.js +20 -0
  30. package/dist/src/presentation/web/app/actions/list-branches.d.ts +6 -0
  31. package/dist/src/presentation/web/app/actions/list-branches.d.ts.map +1 -0
  32. package/dist/src/presentation/web/app/actions/list-branches.js +18 -0
  33. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts +20 -0
  34. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts.map +1 -0
  35. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +105 -0
  36. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +38 -0
  37. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts.map +1 -0
  38. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +161 -0
  39. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts +7 -0
  40. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.d.ts.map +1 -0
  41. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-drawer-client.js +78 -0
  42. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  43. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  44. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +14 -6
  46. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
  47. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +16 -0
  49. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +12 -3
  51. package/dist/tsconfig.build.tsbuildinfo +1 -1
  52. package/package.json +1 -1
  53. package/web/.next/BUILD_ID +1 -1
  54. package/web/.next/app-path-routes-manifest.json +1 -0
  55. package/web/.next/build-manifest.json +4 -4
  56. package/web/.next/fallback-build-manifest.json +2 -2
  57. package/web/.next/prerender-manifest.json +3 -3
  58. package/web/.next/required-server-files.js +3 -3
  59. package/web/.next/required-server-files.json +3 -3
  60. package/web/.next/routes-manifest.json +6 -0
  61. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/app-paths-manifest.json +3 -0
  62. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +18 -0
  63. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/next-font-manifest.json +6 -0
  64. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +1 -0
  65. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +335 -0
  66. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +20 -0
  67. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.map +5 -0
  68. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -0
  69. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +2 -0
  70. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
  71. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  72. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  75. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  76. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +2 -2
  79. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  80. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +2 -2
  83. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  84. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +2 -2
  87. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  88. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  91. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  92. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  93. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +2 -2
  95. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  96. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  97. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/(dashboard)/page/build-manifest.json +2 -2
  99. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  100. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +2 -2
  103. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  104. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  107. package/web/.next/server/app/_global-error.html +2 -2
  108. package/web/.next/server/app/_global-error.rsc +1 -1
  109. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  110. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  111. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  112. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  113. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  114. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  115. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  116. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  117. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  119. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  120. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  121. package/web/.next/server/app/settings/page/build-manifest.json +2 -2
  122. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  123. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  124. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/skills/page/build-manifest.json +2 -2
  126. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  127. package/web/.next/server/app/skills/page.js +4 -4
  128. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  129. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  131. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  132. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  133. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  135. package/web/.next/server/app/version/page/server-reference-manifest.json +2 -2
  136. package/web/.next/server/app/version/page.js.nft.json +1 -1
  137. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app-paths-manifest.json +1 -0
  139. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  140. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  141. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  142. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js +3 -0
  143. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_94d75bc3._.js.map +1 -0
  144. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js +3 -0
  145. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_cfc9281c.js.map +1 -0
  146. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  147. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
  149. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
  151. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js +3 -0
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__02c84e6b._.js.map +1 -0
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__14664e9b._.js +2 -2
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__6677a82c._.js +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__6677a82c._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__7cbda1ea._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__9e8b25ad._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__aed1d6f8._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce6057f6._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js +3 -0
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__e2227c0f._.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js +3 -0
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0589cc3._.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/_037585d1._.js +3 -0
  179. package/web/.next/server/chunks/ssr/_037585d1._.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  181. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/_19a2fb35._.js +3 -0
  183. package/web/.next/server/chunks/ssr/_19a2fb35._.js.map +1 -0
  184. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  185. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/_4093a637._.js +5 -0
  187. package/web/.next/server/chunks/ssr/_4093a637._.js.map +1 -0
  188. package/web/.next/server/chunks/ssr/_51007db7._.js +3 -0
  189. package/web/.next/server/chunks/ssr/_51007db7._.js.map +1 -0
  190. package/web/.next/server/chunks/ssr/_583a83fb._.js +3 -0
  191. package/web/.next/server/chunks/ssr/_583a83fb._.js.map +1 -0
  192. package/web/.next/server/chunks/ssr/_9f56cf8f._.js +3 -0
  193. package/web/.next/server/chunks/ssr/_9f56cf8f._.js.map +1 -0
  194. package/web/.next/server/chunks/ssr/_a187fd7e._.js +3 -0
  195. package/web/.next/server/chunks/ssr/_a187fd7e._.js.map +1 -0
  196. package/web/.next/server/chunks/ssr/_a5aa6371._.js +9 -0
  197. package/web/.next/server/chunks/ssr/_a5aa6371._.js.map +1 -0
  198. package/web/.next/server/chunks/ssr/_a9f57758._.js +3 -0
  199. package/web/.next/server/chunks/ssr/_a9f57758._.js.map +1 -0
  200. package/web/.next/server/chunks/ssr/{_960ceb5d._.js → _bbe4231d._.js} +2 -2
  201. package/web/.next/server/chunks/ssr/{_960ceb5d._.js.map → _bbe4231d._.js.map} +1 -1
  202. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  203. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/_d5206f22._.js +4 -0
  205. package/web/.next/server/chunks/ssr/_d5206f22._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  207. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  208. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
  209. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js +3 -0
  211. package/web/.next/server/chunks/ssr/node_modules__pnpm_026172d1._.js.map +1 -0
  212. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
  213. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/src_presentation_web_76e3fa97._.js +3 -0
  215. package/web/.next/server/chunks/ssr/src_presentation_web_76e3fa97._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
  217. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  219. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  221. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
  223. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  227. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  228. package/web/.next/server/middleware-build-manifest.js +2 -2
  229. package/web/.next/server/pages/500.html +2 -2
  230. package/web/.next/server/server-reference-manifest.js +1 -1
  231. package/web/.next/server/server-reference-manifest.json +205 -35
  232. package/web/.next/static/chunks/098114af56643bd9.js +1 -0
  233. package/web/.next/static/chunks/1b599871854f8337.js +1 -0
  234. package/web/.next/static/chunks/{373e10090c6410c4.js → 1e75e27e2a8f16aa.js} +3 -3
  235. package/web/.next/static/chunks/3e3e9c6552a6574f.css +1 -0
  236. package/web/.next/static/chunks/{64d063449c3be0ec.js → 41743a4b042afc52.js} +1 -1
  237. package/web/.next/static/chunks/6295f27fe47da052.js +1 -0
  238. package/web/.next/static/chunks/{310be54600c8ce20.js → 63b6810d66452765.js} +2 -2
  239. package/web/.next/static/chunks/{878643f90bc6360f.js → 65edab397a9ea90a.js} +2 -2
  240. package/web/.next/static/chunks/8080c842b0358904.js +1 -0
  241. package/web/.next/static/chunks/{3f6c44cbad751310.js → 872ae77227847df4.js} +1 -1
  242. package/web/.next/static/chunks/{ed3a602003bcb31b.js → 89aac43287d73b02.js} +1 -1
  243. package/web/.next/static/chunks/a4e2b613aebfb60f.js +1 -0
  244. package/web/.next/static/chunks/a8ba3f3e2b0f87aa.js +1 -0
  245. package/web/.next/static/chunks/{f0dfeedb263eb906.js → affe1b865566ff48.js} +1 -1
  246. package/web/.next/static/chunks/{9821072252ddb89a.js → c75433ee5350240c.js} +1 -1
  247. package/web/.next/static/chunks/d04de4be30ab78ca.js +3 -0
  248. package/web/.next/static/chunks/f29ebb567e9486cb.js +1 -0
  249. package/web/.next/static/chunks/{turbopack-426d9bc2450816ba.js → turbopack-080e470ea902d0ba.js} +1 -1
  250. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js +0 -3
  251. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js.map +0 -1
  252. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js +0 -3
  253. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js.map +0 -1
  254. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +0 -3
  255. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +0 -1
  256. package/web/.next/server/chunks/ssr/_3a4c94e3._.js +0 -3
  257. package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +0 -1
  258. package/web/.next/server/chunks/ssr/_6d26a08f._.js +0 -3
  259. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +0 -1
  260. package/web/.next/server/chunks/ssr/_9ac70f88._.js +0 -5
  261. package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +0 -1
  262. package/web/.next/server/chunks/ssr/_b56e7571._.js +0 -3
  263. package/web/.next/server/chunks/ssr/_b56e7571._.js.map +0 -1
  264. package/web/.next/server/chunks/ssr/_e9703421._.js +0 -3
  265. package/web/.next/server/chunks/ssr/_e9703421._.js.map +0 -1
  266. package/web/.next/server/chunks/ssr/_f1a649e3._.js +0 -9
  267. package/web/.next/server/chunks/ssr/_f1a649e3._.js.map +0 -1
  268. package/web/.next/server/chunks/ssr/_fd4c574b._.js +0 -3
  269. package/web/.next/server/chunks/ssr/_fd4c574b._.js.map +0 -1
  270. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js +0 -3
  271. package/web/.next/server/chunks/ssr/node_modules__pnpm_bc66dcc6._.js.map +0 -1
  272. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +0 -3
  273. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +0 -1
  274. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +0 -3
  275. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +0 -1
  276. package/web/.next/server/chunks/ssr/src_presentation_web_db779ef4._.js +0 -3
  277. package/web/.next/server/chunks/ssr/src_presentation_web_db779ef4._.js.map +0 -1
  278. package/web/.next/static/chunks/303a1217006489b9.js +0 -1
  279. package/web/.next/static/chunks/3925626b99dcd57a.css +0 -1
  280. package/web/.next/static/chunks/4443ee9c7733399b.js +0 -1
  281. package/web/.next/static/chunks/52b56677c842e45f.js +0 -3
  282. package/web/.next/static/chunks/694718e5449b3150.js +0 -1
  283. package/web/.next/static/chunks/94af5be1ccf8842e.js +0 -1
  284. package/web/.next/static/chunks/dbbb446493f21874.js +0 -1
  285. package/web/.next/static/chunks/e418898e8e02f50a.js +0 -1
  286. /package/web/.next/static/{gBTe97SiNDA2hbG9dbfpb → Axg9qWCPuwbc3fahoDfel}/_buildManifest.js +0 -0
  287. /package/web/.next/static/{gBTe97SiNDA2hbG9dbfpb → Axg9qWCPuwbc3fahoDfel}/_clientMiddlewareManifest.json +0 -0
  288. /package/web/.next/static/{gBTe97SiNDA2hbG9dbfpb → Axg9qWCPuwbc3fahoDfel}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},16753,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),i=e.i(16340),o=e.i(40522),s=e.i(21994),l=e.i(5802),d=e.i(17171),c=e.i(177),u=e.i(43685),p=e.i(84832),h=e.i(92435),v=e.i(41260),x=e.i(80556),m=e.i(93695);e.i(97230);var R=e.i(35162),f=e.i(27980),g=e.i(40060);function w(){try{let{version:e,name:t,description:r}=(0,g.resolve)("IVersionService").getVersion();return f.NextResponse.json({version:e,packageName:t,description:r,branch:"main",commitHash:"9cce178f300f3dcc2eb1c511c1ee80dd9c471375",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}catch{return f.NextResponse.json({version:"1.122.2",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy",branch:"main",commitHash:"9cce178f300f3dcc2eb1c511c1ee80dd9c471375",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],35003);var E=e.i(35003);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/version/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;function N(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})}async function P(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/version/route";f=f.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:S}=g,q=(0,s.normalizeAppPath)(f),j=!!(N.dynamicRoutes[q]||N.routes[_]),H=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,b,!1):t.end("This page could not be found"),null);if(j&&!A){let e=!!N.routes[_],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await H();throw new m.NoFallbackError}}let I=null;!j||y.isDev||A||(I="/index"===(I=_)?"/":I);let D=!0===y.isDev||!j,U=j&&!D;S&&O&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:S});let M=e.method||"GET",$=(0,i.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let o=async e=>y.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${f}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var i,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(L,B,i,K.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),t}},c=await y.handleResponse({req:e,nextConfig:C,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!j)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&j||m.delete(x.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,v.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(L,B,new Response(c.value.body,{headers:m,status:c.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),j)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>y,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>b],16753)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},16753,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),o=e.i(16340),i=e.i(40522),s=e.i(21994),l=e.i(5802),d=e.i(17171),u=e.i(177),c=e.i(43685),p=e.i(84832),h=e.i(92435),v=e.i(41260),x=e.i(80556),R=e.i(93695);e.i(97230);var f=e.i(35162),m=e.i(27980),g=e.i(40060);function w(){try{let{version:e,name:t,description:r}=(0,g.resolve)("IVersionService").getVersion();return m.NextResponse.json({version:e,packageName:t,description:r,branch:"HEAD",commitHash:"98d0323969dcaf1c4ace1301f0064fe4150a139f",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}catch{return m.NextResponse.json({version:"1.124.0",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy",branch:"HEAD",commitHash:"98d0323969dcaf1c4ace1301f0064fe4150a139f",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],35003);var E=e.i(35003);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/version/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;function N(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})}async function P(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/version/route";m=m.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:H,serverActionsManifest:O}=g,S=(0,s.normalizeAppPath)(m),q=!!(N.dynamicRoutes[S]||N.routes[_]),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!N.routes[_],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new R.NoFallbackError}}let D=null;!q||y.isDev||A||(D="/index"===(D=_)?"/":D);let I=!0===y.isDev||!q,U=q&&!I;O&&H&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:H,serverActionsManifest:O});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let i=async e=>y.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${m}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),t}},u=await y.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&q||R.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:R,status:u.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),q)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>y,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>b],16753)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__a402b567._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[85712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89933,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(85712),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},8729,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={PARALLEL_ROUTE_DEFAULT_PATH:function(){return g},default:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(89933),g="next/dist/client/components/builtin/default.js";function h(){(0,f.notFound)()}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
2
+
3
+ //# sourceMappingURL=403f9_next_dist_client_components_94d75bc3._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/components/http-access-fallback/http-access-fallback.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/components/not-found.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/components/builtin/default.tsx"],"sourcesContent":["export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","import { notFound } from '../not-found'\n\nexport const PARALLEL_ROUTE_DEFAULT_PATH =\n 'next/dist/client/components/builtin/default.js'\n\nexport default function ParallelRouteDefault() {\n notFound()\n}\n"],"names":["HTTPAccessErrorStatus","HTTP_ERROR_FALLBACK_ERROR_CODE","getAccessFallbackErrorTypeByStatus","getAccessFallbackHTTPStatus","isHTTPAccessFallbackError","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","ALLOWED_CODES","Set","Object","values","error","digest","prefix","httpStatus","split","has","Number","status","notFound","DIGEST","Error","PARALLEL_ROUTE_DEFAULT_PATH","ParallelRouteDefault"],"mappings":"qGAAaA,qBAAqB,CAAA,kBAArBA,GAQAC,8BAA8B,CAAA,kBAA9BA,GAuCGC,kCAAkC,CAAA,kBAAlCA,GAPAC,2BAA2B,CAAA,kBAA3BA,GAnBAC,yBAAyB,CAAA,kBAAzBA,uEArBT,IAAMJ,EAAwB,CACnCK,UAAW,IACXC,UAAW,IACXC,aAAc,GAChB,EAEMC,EAAgB,IAAIC,IAAIC,OAAOC,MAAM,CAACX,IAE/BC,EAAiC,2BAavC,SAASG,EACdQ,CAAc,EAEd,GACmB,UAAjB,OAAOA,GACG,OAAVA,GACA,CAAE,CAAA,WAAYA,CAAAA,CAAI,EACM,UACxB,AADA,OAAOA,EAAMC,MAAM,CAEnB,OAAO,EAET,GAAM,CAACC,EAAQC,EAAW,CAAGH,EAAMC,MAAM,CAACG,KAAK,CAAC,KAEhD,OACEF,IAAWb,GACXO,EAAcS,GAAG,CAACC,OAAOH,GAE7B,CAEO,SAASZ,EACdS,CAA8B,EAG9B,OAAOM,OADYN,AACLG,EADWF,MAAM,CAACG,KAAK,CAAC,IAAI,CAAC,EAAE,CAE/C,CAEO,SAASd,EACdiB,CAAc,EAEd,OAAQA,GACN,KAAK,IACH,MAAO,cACT,MAAK,IACH,MAAO,WACT,MAAK,IACH,MAAO,WACT,SACE,MACJ,CACF,+TCtCgBC,WAAAA,qCAAAA,aAnBT,CAAA,CAAA,IAAA,GAiBDC,EAAS,CAAA,EAAGpB,EAAAA,8BAA8B,CAAC,IAAI,CAAC,CAE/C,SAASmB,IACd,IAAMR,EAAQ,OAAA,cAAiB,CAAjB,AAAIU,MAAMD,GAAV,oBAAA,OAAA,mBAAA,eAAA,EAAgB,EAG9B,OAFET,EAAkCC,MAAM,CAAGQ,EAEvCT,CACR,6SCzBaW,2BAA2B,CAAA,kBAA3BA,GAGb,OAEC,CAAA,kBAFuBC,+EALC,CAAA,CAAA,IAAA,GAEZD,EACX,iDAEa,SAASC,IACtBJ,CAAAA,EAAAA,EAAAA,QAAAA,AAAQ,GACV","ignoreList":[0,1,2]}
@@ -0,0 +1,3 @@
1
+ module.exports=[19386,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(19464),j=a.i(80496),k=a.i(41872),l=a.i(9959),m=a.i(23504),n=a.i(27900),o=a.i(50845),p=a.i(26604),q=a.i(54723),r=a.i(18942),s=a.i(49560),t=a.i(39353),u=a.i(29207),v=a.i(92658),w=a.i(96380),x=a.i(12581);async function y(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,w.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function z(a){if(!a?.trim())return[];try{let b=(0,w.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,x.ensureServerEntryExports)([y]),(0,v.registerServerReference)(y,"4053bf9bc144e75bcdbf1cbeeb902621c3529b189d",null),(0,x.ensureServerEntryExports)([z]),(0,v.registerServerReference)(z,"40f44a9f679e40a53a29b6a3e184101e33f4fccc82",null),a.s([],51513),a.i(51513),a.s(["00459d023b8cb273e1020d8f855a8d27bdacfcae46",()=>l.checkAgentAuth,"007f5cd59cfafd825bea95752810eca8fe6f2cd4ed",()=>b.pickFolder,"00e4b4a155d4d014efcac2bdb2d2dd6b72e0661a04",()=>k.isAgentSetupComplete,"00e79e642b0be7c1c3a913efe51a0f0c4a816372e6",()=>m.getAllAgentModels,"4006ff1d1d42e94ac5aa5d0c084376c3a1b92834be",()=>j.openFolder,"4011f962d08f584d19dc1c6390009645189bca2c2a",()=>c.getDeploymentLogs,"40126223e115c292b861c2e66fb99ef749a3c7d0fe",()=>r.stopFeature,"4018b8fba311beec3334b93c3af8d30f8c93d7d808",()=>h.openIde,"40251e98bbb3ec6a864bba5fe781e8636bef2a7adb",()=>e.deployRepository,"403a8bd0f64326c21503c9b79581175c5866aad4a2",()=>f.stopDeployment,"4049ff5f104dd6ee74a6836c1410edd32124badd05",()=>q.startFeature,"404bc6dd9d4be82214fb224eb6c8794c670cc5b6a2",()=>p.resumeFeature,"4053bf9bc144e75bcdbf1cbeeb902621c3529b189d",()=>y,"4057f8be71a7ff95548f60a1f36bc90fefa2691f5e",()=>s.addRepository,"405e579e93869570fa56a708795403e2d63899df49",()=>i.openShell,"406965f4c15b385df6a5c7573661ffe87339b6e237",()=>u.getFeatureMetadata,"40947727d927ae4a233fb5386c428661d419a5b937",()=>t.deleteRepository,"40e07817d761b416d49eb62b306d8c63717300fa28",()=>g.getDeploymentStatus,"40ea405da8be3a9f314de27b98c0fa7193462995ef",()=>d.deployFeature,"40f44a9f679e40a53a29b6a3e184101e33f4fccc82",()=>z,"6026898019710d61966d0e6316cae241f6b720ef1d",()=>n.updateAgentAndModel,"706a0a2a8c1a03cc56a389e9b2f7949b50854af5f6",()=>o.deleteFeature],19386)}];
2
+
3
+ //# sourceMappingURL=744ca_web__next-internal_server_app_%28dashboard%29_%40drawer_adopt_page_actions_cfc9281c.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"sourcesContent":["export {pickFolder as '007f5cd59cfafd825bea95752810eca8fe6f2cd4ed'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '4011f962d08f584d19dc1c6390009645189bca2c2a'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40ea405da8be3a9f314de27b98c0fa7193462995ef'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '40251e98bbb3ec6a864bba5fe781e8636bef2a7adb'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '403a8bd0f64326c21503c9b79581175c5866aad4a2'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40e07817d761b416d49eb62b306d8c63717300fa28'} from 'ACTIONS_MODULE5'\nexport {openIde as '4018b8fba311beec3334b93c3af8d30f8c93d7d808'} from 'ACTIONS_MODULE6'\nexport {openShell as '405e579e93869570fa56a708795403e2d63899df49'} from 'ACTIONS_MODULE7'\nexport {openFolder as '4006ff1d1d42e94ac5aa5d0c084376c3a1b92834be'} from 'ACTIONS_MODULE8'\nexport {isAgentSetupComplete as '00e4b4a155d4d014efcac2bdb2d2dd6b72e0661a04'} from 'ACTIONS_MODULE9'\nexport {checkAgentAuth as '00459d023b8cb273e1020d8f855a8d27bdacfcae46'} from 'ACTIONS_MODULE10'\nexport {getAllAgentModels as '00e79e642b0be7c1c3a913efe51a0f0c4a816372e6'} from 'ACTIONS_MODULE11'\nexport {updateAgentAndModel as '6026898019710d61966d0e6316cae241f6b720ef1d'} from 'ACTIONS_MODULE12'\nexport {deleteFeature as '706a0a2a8c1a03cc56a389e9b2f7949b50854af5f6'} from 'ACTIONS_MODULE13'\nexport {resumeFeature as '404bc6dd9d4be82214fb224eb6c8794c670cc5b6a2'} from 'ACTIONS_MODULE14'\nexport {startFeature as '4049ff5f104dd6ee74a6836c1410edd32124badd05'} from 'ACTIONS_MODULE15'\nexport {stopFeature as '40126223e115c292b861c2e66fb99ef749a3c7d0fe'} from 'ACTIONS_MODULE16'\nexport {addRepository as '4057f8be71a7ff95548f60a1f36bc90fefa2691f5e'} from 'ACTIONS_MODULE17'\nexport {deleteRepository as '40947727d927ae4a233fb5386c428661d419a5b937'} from 'ACTIONS_MODULE18'\nexport {getFeatureMetadata as '406965f4c15b385df6a5c7573661ffe87339b6e237'} from 'ACTIONS_MODULE19'\nexport {adoptBranch as '4053bf9bc144e75bcdbf1cbeeb902621c3529b189d'} from 'ACTIONS_MODULE20'\nexport {listBranches as '40f44a9f679e40a53a29b6a3e184101e33f4fccc82'} from 'ACTIONS_MODULE21'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBCjBA,EAAA,EAAA,CAAA,CAAA,oBASO,eAAe,EACpB,CAAuB,EAEvB,GAAM,CAAE,YAAU,gBAAE,CAAc,CAAE,CAAG,EAEvC,GAAI,CAAC,GAAY,OACf,CADuB,KAChB,CAAE,MAAO,yBAA0B,EAE5C,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,CAAE,MAAO,6BAA8B,EAGhD,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAE5C,MAAO,CAAE,QAAS,CADH,MAAM,EAAQ,OAAO,CAAC,YAAE,iBAAY,CAAe,EAAA,EACzC,OAAO,AAAC,CACnC,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,MADO,CACA,YADiB,MAAQ,EAAM,OAAO,CAAG,wBACjC,CAC1B,CACF,CCtBO,eAAe,EAAa,CAAsB,EACvD,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,EAAE,CAGX,GAAI,CACF,IAAM,EAAkB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAmB,oBAClD,OAAO,MAAM,EAAgB,YAAY,CAAC,EAC5C,CAAE,KAAM,CACN,MAAO,EAAE,AACX,CACF,iCDTsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCFA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("4075a082db11244f324640576b2dbf0f92c9cef9a5",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242);let i=(0,a.i(25700).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064),o=a.i(85536),p=a.i(19884);a.i(78454);var q=a.i(24255),r=a.i(2824),s=a.i(18948),t=a.i(90920),u=a.i(79620),v=a.i(584),w=a.i(58339),x=a.i(80646),y=a.i(96867),z=a.i(82934),A=a.i(96213);a.i(307);var B=a.i(30931),C=a.i(61781),D=a.i(13126),E=a.i(1377),F=a.i(83921),G=a.i(39116);let H=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),I=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],J={allowPrd:!1,allowPlan:!1,allowMerge:!1};function K({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:t,currentModel:x,initialDescription:D}){let E=(0,p.useSoundAction)("create"),F=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",K=i?.approvalGates??J,N=i?.push??!1,O=i?.openPr??!1,P=i?.ciWatchEnabled!==!1,Q=i?.enableEvidence??!1,R=i?.commitEvidence??!1,[S,T]=(0,c.useState)(D??"");(0,c.useEffect)(()=>{D&&T(D)},[D]);let[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)({...K}),[Y,Z]=(0,c.useState)(N),[$,_]=(0,c.useState)(O),[aa,ab]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ac,ad]=(0,c.useState)(Q),[ae,af]=(0,c.useState)(R),[ag,ah]=(0,c.useState)(void 0),[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(void 0),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(F||void 0),[as,at]=(0,c.useState)(m??[]),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),aA=(0,c.useRef)(crypto.randomUUID()),aB=(0,c.useRef)(0),aC=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(X({...i.approvalGates}),Z(i.push),_(i.openPr),ab(!1!==i.ciWatchEnabled),ad(i.enableEvidence),af(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{at(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&ah(n)},[a,n]);let aD=(0,c.useCallback)(()=>{T(""),V([]),X({...K}),Z(N),_(O),ab(P),ad(Q),af(R),ah(void 0),ar(F||void 0),at(m??[]),aj(!1),al(!1),an(void 0),ap(void 0),ax(null),aB.current=0,av(!1)},[K,N,O,Q,P,R,F,m]),aE=""!==S.trim()||U.length>0,{attemptClose:aF}=(0,A.useGuardedDrawerClose)({open:a,isDirty:aE,onClose:d,onReset:aD}),aG=(0,c.useCallback)(async a=>{for(let b of(ax(null),a)){if(b.size>0xa00000)return void ax(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!H.has(a))return void ax(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aA.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let e=await d.json();V(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}},[]),aH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current+=1,1===aB.current&&av(!0)},[]),aI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current-=1,0===aB.current&&av(!1)},[]),aJ=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aK=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current=0,av(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aG(b)},[aG]),aL=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aG(c))},[aG]),aM=(0,c.useCallback)(a=>{if(a.preventDefault(),!S.trim())return;let b=aq??F;b&&(E.play(),e({description:S.trim(),attachments:U.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:W.allowPrd??!1,allowPlan:W.allowPlan??!1,allowMerge:W.allowMerge??!1},push:Y||$,openPr:$,ciWatchEnabled:aa,enableEvidence:ac,commitEvidence:ae,fast:ai,...ak?{pending:ak}:{},...am?{agentType:am}:{},...ao?{model:ao}:{},...ag?{parentId:ag}:{},sessionId:aA.current}),aD())},[S,U,W,aq,F,e,Y,$,ac,aa,ae,ai,ak,am,ao,ag,E,aD]),aN=(0,c.useCallback)(async()=>{try{let a=await (0,G.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aA.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let d=await c.json();V(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}}catch{}},[]),aO=(0,c.useCallback)(a=>{V(b=>b.filter(b=>b.id!==a))},[]),aP=(0,c.useRef)(null),aQ=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),aP.current?.requestSubmit())},[]),aR=(0,c.useCallback)(()=>{az(!0)},[]),aS=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aC.current?.contains(document.activeElement),b=aC.current?.querySelector('[aria-expanded="true"]')!==null;a||b||az(!1)},0)},[]),aT=j&&j.length>0,aU=!F&&!aq,aV=!F&&void 0!==m;return(0,b.jsx)(q.BaseDrawer,{open:a,onClose:aF,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(r.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(r.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(w.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(s.Button,{variant:"outline",onClick:aF,disabled:g,children:"Cancel"}),(0,b.jsx)(s.Button,{type:"submit",form:"create-feature-form",disabled:!S.trim()||g||aU,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(z.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:aP,id:"create-feature-form",onSubmit:aM,onKeyDown:aQ,className:"flex flex-col gap-4",children:[aV?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(M,{repositories:as,value:aq,onChange:ar,onAddRepository:a=>{at(b=>[...b,a]),ar(a.path)},disabled:g})]}):F?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===F)?.name??F.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":au?"true":"false",onDragEnter:aH,onDragLeave:aI,onDragOver:aJ,onDrop:aK,className:(0,o.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",au&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(v.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{ref:aC,onFocus:aR,onBlur:aS,className:(0,o.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",ay&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(u.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:S,onChange:a=>T(a.target.value),onPaste:aL,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),U.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:U.map(a=>(0,b.jsx)(B.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aO(a.id),disabled:g,loading:a.loading},a.id))}),aw?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aw}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(C.AgentModelPicker,{initialAgentType:am??t??"claude-code",initialModel:ao??x??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{an(a),ap(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"pending-mode",checked:ak,onCheckedChange:al,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"fast-mode",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aN,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),aT&&void 0!==n?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(v.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(L,{features:j,value:ag,onChange:ah,disabled:g})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:I.map(a=>(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:`approve-${a.id}`,size:"sm",checked:W[a.id]??!1,onCheckedChange:b=>X(c=>({...c,[a.id]:b})),disabled:g||ai&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(v.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:ai&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=I.every(a=>W[a.id]),b={};for(let c of I)b[c.id]=!a;X(b)},disabled:g,className:(0,o.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",I.every(a=>W[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"EVIDENCE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"enable-evidence",size:"sm",checked:ac,onCheckedChange:a=>{ad(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"commit-evidence",size:"sm",checked:ae,onCheckedChange:af,disabled:g||!ac||!$}),(0,b.jsx)(v.Label,{htmlFor:"commit-evidence",className:(0,o.cn)("cursor-pointer text-xs font-medium",(!ac||!$)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:$?ac?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"push",size:"sm",checked:Y||$,onCheckedChange:a=>{Z(a),!a&&$&&_(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"open-pr",size:"sm",checked:$,onCheckedChange:a=>{_(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"ci-watch",size:"sm",checked:aa,onCheckedChange:ab,disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]})]})]})]})]})})})})}function L({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),p=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,q=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(x.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>q(void 0),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===d&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>q(a.id),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function M({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=a.find(a=>a.path===d),y=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,z=(0,c.useCallback)(a=>{e(a),k(!1),p("")},[e]),A=(0,c.useCallback)(async()=>{if(!q){r(!0),u(null);try{let a=await (0,E.pickFolder)();if(!a)return void r(!1);let b=await (0,F.addRepository)({path:a});if(b.error){u(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),p("")}}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[q,f,e]);return(0,c.useEffect)(()=>{h?setTimeout(()=>v.current?.focus(),0):p("")},[h]),(0,b.jsxs)(x.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,b.jsx)(i,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:v,placeholder:"Search repositories...",value:l,onChange:a=>p(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===y.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):y.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>z(a.path),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(D.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:A,disabled:q,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[q?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]})}function N({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m}){let n=(0,d.useRouter)(),[o,p]=(0,c.useState)(!1),q=(0,d.usePathname)().startsWith("/create"),r=!o&&q;(0,c.useEffect)(()=>{!q&&o&&p(!1)},[q,o]);let s=(0,c.useCallback)(()=>{n.push("/")},[n]),t=(0,c.useCallback)(a=>{p(!0),n.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),p(!1)})},[n]);return(0,b.jsx)(K,{open:r,onClose:s,onSubmit:t,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:o,currentAgentType:l,currentModel:m})}a.s(["CreateDrawerClient",()=>N],93995)}];
1
+ module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("40deb678323983e2a75713331fea697f39addfbc82",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242),i=a.i(14177),j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064),o=a.i(85536),p=a.i(19884);a.i(78454);var q=a.i(24255),r=a.i(2824),s=a.i(18948),t=a.i(90920),u=a.i(79620),v=a.i(584),w=a.i(58339),x=a.i(80646),y=a.i(96867),z=a.i(82934),A=a.i(96213);a.i(307);var B=a.i(30931),C=a.i(61781),D=a.i(13126),E=a.i(1377),F=a.i(50817),G=a.i(39116);let H=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),I=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],J={allowPrd:!1,allowPlan:!1,allowMerge:!1};function K({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:t,currentModel:x,initialDescription:D}){let E=(0,p.useSoundAction)("create"),F=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",K=i?.approvalGates??J,N=i?.push??!1,O=i?.openPr??!1,P=i?.ciWatchEnabled!==!1,Q=i?.enableEvidence??!1,R=i?.commitEvidence??!1,[S,T]=(0,c.useState)(D??"");(0,c.useEffect)(()=>{D&&T(D)},[D]);let[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)({...K}),[Y,Z]=(0,c.useState)(N),[$,_]=(0,c.useState)(O),[aa,ab]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ac,ad]=(0,c.useState)(Q),[ae,af]=(0,c.useState)(R),[ag,ah]=(0,c.useState)(void 0),[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(void 0),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(F||void 0),[as,at]=(0,c.useState)(m??[]),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),aA=(0,c.useRef)(crypto.randomUUID()),aB=(0,c.useRef)(0),aC=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(X({...i.approvalGates}),Z(i.push),_(i.openPr),ab(!1!==i.ciWatchEnabled),ad(i.enableEvidence),af(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{at(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&ah(n)},[a,n]);let aD=(0,c.useCallback)(()=>{T(""),V([]),X({...K}),Z(N),_(O),ab(P),ad(Q),af(R),ah(void 0),ar(F||void 0),at(m??[]),aj(!1),al(!1),an(void 0),ap(void 0),ax(null),aB.current=0,av(!1)},[K,N,O,Q,P,R,F,m]),aE=""!==S.trim()||U.length>0,{attemptClose:aF}=(0,A.useGuardedDrawerClose)({open:a,isDirty:aE,onClose:d,onReset:aD}),aG=(0,c.useCallback)(async a=>{for(let b of(ax(null),a)){if(b.size>0xa00000)return void ax(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!H.has(a))return void ax(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aA.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let e=await d.json();V(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}},[]),aH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current+=1,1===aB.current&&av(!0)},[]),aI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current-=1,0===aB.current&&av(!1)},[]),aJ=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aK=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current=0,av(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aG(b)},[aG]),aL=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aG(c))},[aG]),aM=(0,c.useCallback)(a=>{if(a.preventDefault(),!S.trim())return;let b=aq??F;b&&(E.play(),e({description:S.trim(),attachments:U.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:W.allowPrd??!1,allowPlan:W.allowPlan??!1,allowMerge:W.allowMerge??!1},push:Y||$,openPr:$,ciWatchEnabled:aa,enableEvidence:ac,commitEvidence:ae,fast:ai,...ak?{pending:ak}:{},...am?{agentType:am}:{},...ao?{model:ao}:{},...ag?{parentId:ag}:{},sessionId:aA.current}),aD())},[S,U,W,aq,F,e,Y,$,ac,aa,ae,ai,ak,am,ao,ag,E,aD]),aN=(0,c.useCallback)(async()=>{try{let a=await (0,G.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aA.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let d=await c.json();V(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}}catch{}},[]),aO=(0,c.useCallback)(a=>{V(b=>b.filter(b=>b.id!==a))},[]),aP=(0,c.useRef)(null),aQ=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),aP.current?.requestSubmit())},[]),aR=(0,c.useCallback)(()=>{az(!0)},[]),aS=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aC.current?.contains(document.activeElement),b=aC.current?.querySelector('[aria-expanded="true"]')!==null;a||b||az(!1)},0)},[]),aT=j&&j.length>0,aU=!F&&!aq,aV=!F&&void 0!==m;return(0,b.jsx)(q.BaseDrawer,{open:a,onClose:aF,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(r.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(r.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(w.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(s.Button,{variant:"outline",onClick:aF,disabled:g,children:"Cancel"}),(0,b.jsx)(s.Button,{type:"submit",form:"create-feature-form",disabled:!S.trim()||g||aU,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(z.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:aP,id:"create-feature-form",onSubmit:aM,onKeyDown:aQ,className:"flex flex-col gap-4",children:[aV?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(M,{repositories:as,value:aq,onChange:ar,onAddRepository:a=>{at(b=>[...b,a]),ar(a.path)},disabled:g})]}):F?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===F)?.name??F.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":au?"true":"false",onDragEnter:aH,onDragLeave:aI,onDragOver:aJ,onDrop:aK,className:(0,o.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",au&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(v.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{ref:aC,onFocus:aR,onBlur:aS,className:(0,o.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",ay&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(u.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:S,onChange:a=>T(a.target.value),onPaste:aL,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),U.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:U.map(a=>(0,b.jsx)(B.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aO(a.id),disabled:g,loading:a.loading},a.id))}),aw?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aw}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(C.AgentModelPicker,{initialAgentType:am??t??"claude-code",initialModel:ao??x??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{an(a),ap(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"pending-mode",checked:ak,onCheckedChange:al,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"fast-mode",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aN,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),aT&&void 0!==n?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(v.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(L,{features:j,value:ag,onChange:ah,disabled:g})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:I.map(a=>(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:`approve-${a.id}`,size:"sm",checked:W[a.id]??!1,onCheckedChange:b=>X(c=>({...c,[a.id]:b})),disabled:g||ai&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(v.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:ai&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=I.every(a=>W[a.id]),b={};for(let c of I)b[c.id]=!a;X(b)},disabled:g,className:(0,o.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",I.every(a=>W[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"EVIDENCE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"enable-evidence",size:"sm",checked:ac,onCheckedChange:a=>{ad(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"commit-evidence",size:"sm",checked:ae,onCheckedChange:af,disabled:g||!ac||!$}),(0,b.jsx)(v.Label,{htmlFor:"commit-evidence",className:(0,o.cn)("cursor-pointer text-xs font-medium",(!ac||!$)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:$?ac?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"push",size:"sm",checked:Y||$,onCheckedChange:a=>{Z(a),!a&&$&&_(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"open-pr",size:"sm",checked:$,onCheckedChange:a=>{_(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"ci-watch",size:"sm",checked:aa,onCheckedChange:ab,disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]})]})]})]})]})})})})}function L({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),p=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,q=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(x.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>q(void 0),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===d&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>q(a.id),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function M({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=a.find(a=>a.path===d),y=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,z=(0,c.useCallback)(a=>{e(a),k(!1),p("")},[e]),A=(0,c.useCallback)(async()=>{if(!q){r(!0),u(null);try{let a=await (0,E.pickFolder)();if(!a)return void r(!1);let b=await (0,F.addRepository)({path:a});if(b.error){u(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),p("")}}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[q,f,e]);return(0,c.useEffect)(()=>{h?setTimeout(()=>v.current?.focus(),0):p("")},[h]),(0,b.jsxs)(x.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:v,placeholder:"Search repositories...",value:l,onChange:a=>p(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===y.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):y.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>z(a.path),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(D.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:A,disabled:q,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[q?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]})}function N({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m}){let n=(0,d.useRouter)(),[o,p]=(0,c.useState)(!1),q=(0,d.usePathname)().startsWith("/create"),r=!o&&q;(0,c.useEffect)(()=>{!q&&o&&p(!1)},[q,o]);let s=(0,c.useCallback)(()=>{n.push("/")},[n]),t=(0,c.useCallback)(a=>{p(!0),n.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),p(!1)})},[n]);return(0,b.jsx)(K,{open:r,onClose:s,onSubmit:t,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:o,currentAgentType:l,currentModel:m})}a.s(["CreateDrawerClient",()=>N],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map