@shepai/cli 1.165.0 → 1.166.0-pr505.69702c9

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 (364) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/apis/json-schema/StageTimeouts.yaml +7 -2
  3. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  4. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
  5. package/dist/packages/core/src/domain/generated/output.d.ts +10 -2
  6. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/persistence/sqlite/legacy-migrations.js +11 -0
  9. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +2 -0
  10. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +5 -0
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts +11 -0
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.d.ts.map +1 -0
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-feature-flag-inventory.js +17 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.d.ts +15 -0
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.d.ts.map +1 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-stage-timeout-fast-implement-ms.js +22 -0
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts +3 -3
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +3 -3
  20. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +2 -2
  21. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts +7 -0
  22. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts.map +1 -0
  23. package/dist/src/presentation/web/app/features/feature-tree-page-client.js +13 -0
  24. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts +10 -0
  25. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts.map +1 -0
  26. package/dist/src/presentation/web/app/features/get-feature-tree-data.js +47 -0
  27. package/dist/src/presentation/web/app/features/page.d.ts +4 -0
  28. package/dist/src/presentation/web/app/features/page.d.ts.map +1 -0
  29. package/dist/src/presentation/web/app/features/page.js +9 -0
  30. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  31. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
  32. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts +36 -0
  33. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts.map +1 -0
  34. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.js +196 -0
  35. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts +12 -0
  36. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts.map +1 -0
  37. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.js +166 -0
  38. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts +3 -0
  39. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts.map +1 -0
  40. package/dist/src/presentation/web/components/features/feature-tree-table/index.js +1 -0
  41. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  43. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  45. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +13 -0
  47. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +2 -0
  49. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +11 -0
  51. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +2 -0
  53. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  55. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  57. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  58. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  59. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  60. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  61. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  62. package/dist/translations/ar/web.json +4 -0
  63. package/dist/translations/de/web.json +4 -0
  64. package/dist/translations/en/web.json +4 -0
  65. package/dist/translations/es/web.json +4 -0
  66. package/dist/translations/fr/web.json +4 -0
  67. package/dist/translations/he/web.json +4 -0
  68. package/dist/translations/pt/web.json +4 -0
  69. package/dist/translations/ru/web.json +4 -0
  70. package/dist/tsconfig.build.tsbuildinfo +1 -1
  71. package/package.json +1 -1
  72. package/web/.next/BUILD_ID +1 -1
  73. package/web/.next/app-path-routes-manifest.json +1 -0
  74. package/web/.next/build-manifest.json +5 -5
  75. package/web/.next/fallback-build-manifest.json +2 -2
  76. package/web/.next/prerender-manifest.json +3 -3
  77. package/web/.next/required-server-files.js +3 -3
  78. package/web/.next/required-server-files.json +3 -3
  79. package/web/.next/routes-manifest.json +6 -0
  80. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  81. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  82. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  83. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  86. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  87. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  88. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  91. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  92. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  93. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  94. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  96. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  97. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  98. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  101. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  102. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  103. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  104. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  106. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  107. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  108. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  109. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  111. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  112. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  113. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  114. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  116. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  117. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  118. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  119. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  121. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  122. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  123. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  124. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  126. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  127. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  128. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  129. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  131. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  132. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  133. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  134. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  136. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  137. package/web/.next/server/app/(dashboard)/page.js +1 -1
  138. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  139. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  141. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  142. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  143. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  144. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  146. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  147. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  148. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  149. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  150. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  151. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  152. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  153. package/web/.next/server/app/_global-error.html +2 -2
  154. package/web/.next/server/app/_global-error.rsc +1 -1
  155. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  156. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  157. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  158. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  159. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  160. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  161. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  162. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  163. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  164. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  165. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  166. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  167. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  168. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  169. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  170. package/web/.next/server/app/features/page/app-paths-manifest.json +3 -0
  171. package/web/.next/server/app/features/page/build-manifest.json +18 -0
  172. package/web/.next/server/app/features/page/next-font-manifest.json +6 -0
  173. package/web/.next/server/app/features/page/react-loadable-manifest.json +8 -0
  174. package/web/.next/server/app/features/page/server-reference-manifest.json +95 -0
  175. package/web/.next/server/app/features/page.js +18 -0
  176. package/web/.next/server/app/features/page.js.map +5 -0
  177. package/web/.next/server/app/features/page.js.nft.json +1 -0
  178. package/web/.next/server/app/features/page_client-reference-manifest.js +2 -0
  179. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  180. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  181. package/web/.next/server/app/settings/page.js +1 -1
  182. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  183. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  184. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  185. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  186. package/web/.next/server/app/skills/page.js +1 -1
  187. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  188. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  189. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  190. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  191. package/web/.next/server/app/tools/page.js +1 -1
  192. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  193. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  195. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  196. package/web/.next/server/app/version/page.js.nft.json +1 -1
  197. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  198. package/web/.next/server/app-paths-manifest.json +1 -0
  199. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  200. package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js → [root-of-the-server]__a5879003._.js} +2 -2
  201. package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js.map → [root-of-the-server]__a5879003._.js.map} +1 -1
  202. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  203. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  205. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  207. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js +3 -0
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b062b383._.js → [root-of-the-server]__0c5452c3._.js} +2 -2
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c5452c3._.js.map +1 -0
  212. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2d0c3840._.js → [root-of-the-server]__13fa44e4._.js} +2 -2
  213. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2d0c3840._.js.map → [root-of-the-server]__13fa44e4._.js.map} +1 -1
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  215. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +1 -1
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js → [root-of-the-server]__69dd3217._.js} +2 -2
  220. package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js.map → [root-of-the-server]__69dd3217._.js.map} +1 -1
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +4 -0
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -0
  223. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1abe77bb._.js → [root-of-the-server]__7ffd3598._.js} +3 -3
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +1 -0
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +1 -1
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/{[root-of-the-server]__248ee887._.js → [root-of-the-server]__851f6adb._.js} +2 -2
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__851f6adb._.js.map +1 -0
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +1 -1
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7562afc6._.js → [root-of-the-server]__b020c17d._.js} +3 -3
  232. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -0
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +1 -1
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +1 -1
  237. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js → [root-of-the-server]__e88da4ee._.js} +3 -3
  238. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js.map → [root-of-the-server]__e88da4ee._.js.map} +1 -1
  239. package/web/.next/server/chunks/ssr/_0020fddd._.js +1 -1
  240. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -1
  241. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  242. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  243. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  244. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  245. package/web/.next/server/chunks/ssr/_0727935d._.js +1 -1
  246. package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
  247. package/web/.next/server/chunks/ssr/_0dc06d07._.js +1 -1
  248. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +1 -1
  249. package/web/.next/server/chunks/ssr/{_616a8ac1._.js → _166f36df._.js} +2 -2
  250. package/web/.next/server/chunks/ssr/{_616a8ac1._.js.map → _166f36df._.js.map} +1 -1
  251. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  252. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  253. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  254. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  255. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  256. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  257. package/web/.next/server/chunks/ssr/{_d582e961._.js → _3edd669d._.js} +2 -2
  258. package/web/.next/server/chunks/ssr/{_d582e961._.js.map → _3edd669d._.js.map} +1 -1
  259. package/web/.next/server/chunks/ssr/{_44591fa7._.js → _407e5985._.js} +2 -2
  260. package/web/.next/server/chunks/ssr/{_44591fa7._.js.map → _407e5985._.js.map} +1 -1
  261. package/web/.next/server/chunks/ssr/_4a4709c5._.js +4 -0
  262. package/web/.next/server/chunks/ssr/_4a4709c5._.js.map +1 -0
  263. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/_560f2971._.js +3 -0
  265. package/web/.next/server/chunks/ssr/_560f2971._.js.map +1 -0
  266. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  267. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  268. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  269. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  270. package/web/.next/server/chunks/ssr/_a69efc34._.js +3 -0
  271. package/web/.next/server/chunks/ssr/{_4d49a312._.js.map → _a69efc34._.js.map} +1 -1
  272. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  273. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  274. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  275. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  276. package/web/.next/server/chunks/ssr/{_506a3bc3._.js → _cc936cdc._.js} +2 -2
  277. package/web/.next/server/chunks/ssr/_cc936cdc._.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  279. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  281. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  283. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  284. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  285. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  286. package/web/.next/server/chunks/ssr/_f535d854._.js +3 -0
  287. package/web/.next/server/chunks/ssr/_f535d854._.js.map +1 -0
  288. package/web/.next/server/chunks/ssr/_f79e241b._.js +3 -0
  289. package/web/.next/server/chunks/ssr/{_3bcda5d7._.js.map → _f79e241b._.js.map} +1 -1
  290. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  291. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  293. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  294. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  295. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  297. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +10 -0
  298. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +1 -0
  299. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  300. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  301. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js +3 -0
  302. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js.map +1 -0
  303. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  304. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  305. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  306. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  307. package/web/.next/server/middleware-build-manifest.js +3 -3
  308. package/web/.next/server/pages/500.html +2 -2
  309. package/web/.next/server/server-reference-manifest.js +1 -1
  310. package/web/.next/server/server-reference-manifest.json +89 -47
  311. package/web/.next/static/chunks/{bec9239427893a91.js → 0ed5cc117fa6b1fb.js} +1 -1
  312. package/web/.next/static/chunks/12108d8133ec11d7.js +1 -0
  313. package/web/.next/static/chunks/20f7cc98a013b11c.js +1 -0
  314. package/web/.next/static/chunks/2f711373a93c5bc3.css +1 -0
  315. package/web/.next/static/chunks/3e393d6a78b2ade4.js +1 -0
  316. package/web/.next/static/chunks/{e4be686cb3bd28f0.js → 3e56f1c0d6fd597e.js} +1 -1
  317. package/web/.next/static/chunks/4cec255f2754e5ec.js +1 -0
  318. package/web/.next/static/chunks/{9461ce4baa99276f.js → 5535b63f0dee9d4d.js} +1 -1
  319. package/web/.next/static/chunks/{cad3cca5183ead26.js → 5c09d2251510fc0d.js} +1 -1
  320. package/web/.next/static/chunks/5c6d14681bec3a25.css +1 -0
  321. package/web/.next/static/chunks/5d4a8552d5b6a4a8.js +1 -0
  322. package/web/.next/static/chunks/5ed47e998707b519.js +8 -0
  323. package/web/.next/static/chunks/647140fe96a7c88a.js +1 -0
  324. package/web/.next/static/chunks/{c96dff98886884ee.js → 7d623e10e05fef54.js} +3 -3
  325. package/web/.next/static/chunks/827b3cc73b7a2b34.js +1 -0
  326. package/web/.next/static/chunks/9bca6624c873b56f.js +1 -0
  327. package/web/.next/static/chunks/a825ba5207a10722.js +7 -0
  328. package/web/.next/static/chunks/{2b3740e29ed9b3de.js → a83939881726a6dd.js} +2 -2
  329. package/web/.next/static/chunks/a83f32d0b3e27624.js +1 -0
  330. package/web/.next/static/chunks/a93af66e94eeb5e0.js +1 -0
  331. package/web/.next/static/chunks/b85e74f20793ec84.js +1 -0
  332. package/web/.next/static/chunks/{61e13c3bd0f3cd25.js → badd23a63c6342b7.js} +2 -2
  333. package/web/.next/static/chunks/{21f9eacf5581b713.js → c8347760a2f8ac4d.js} +1 -1
  334. package/web/.next/static/chunks/dc134f3f58cdf850.js +5 -0
  335. package/web/.next/static/chunks/f998b42b5cddafd6.js +1 -0
  336. package/web/.next/static/chunks/{turbopack-432ef324fc27240c.js → turbopack-62782e656a49f322.js} +1 -1
  337. package/web/package.json +2 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +0 -1
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__248ee887._.js.map +0 -1
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +0 -1
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__b062b383._.js.map +0 -1
  342. package/web/.next/server/chunks/ssr/_3bcda5d7._.js +0 -3
  343. package/web/.next/server/chunks/ssr/_4d49a312._.js +0 -3
  344. package/web/.next/server/chunks/ssr/_506a3bc3._.js.map +0 -1
  345. package/web/.next/server/chunks/ssr/_9215e9ec._.js +0 -3
  346. package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +0 -1
  347. package/web/.next/server/chunks/ssr/_b5fc318a._.js +0 -3
  348. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  349. package/web/.next/static/chunks/16eea21868510afd.js +0 -5
  350. package/web/.next/static/chunks/1a3b885d3f886bcb.js +0 -1
  351. package/web/.next/static/chunks/1e6609edc3367244.css +0 -1
  352. package/web/.next/static/chunks/28ae5046faef6cec.js +0 -1
  353. package/web/.next/static/chunks/3deefc76ea55047c.js +0 -1
  354. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  355. package/web/.next/static/chunks/558d87d09cd1cc45.js +0 -1
  356. package/web/.next/static/chunks/5c6428d4679cd574.js +0 -1
  357. package/web/.next/static/chunks/65440524d7ee7d13.js +0 -1
  358. package/web/.next/static/chunks/672e3da3ad26005b.js +0 -1
  359. package/web/.next/static/chunks/90fbdf461b7ec652.js +0 -1
  360. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  361. package/web/.next/static/chunks/ccdd1bc568f11f61.js +0 -7
  362. /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → CTvT0XSlQD3ePT__3Kc2n}/_buildManifest.js +0 -0
  363. /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → CTvT0XSlQD3ePT__3Kc2n}/_clientMiddlewareManifest.json +0 -0
  364. /package/web/.next/static/{rkwlBjHfpnafQpJdBxN27 → CTvT0XSlQD3ePT__3Kc2n}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59311,e=>{"use strict";let t=(0,e.i(3645).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],59311)},16868,e=>{"use strict";var t=e.i(43698);e.s(["PaperclipIcon",()=>t.default])},70471,e=>{"use strict";var t=e.i(16298);e.s(["FileText",()=>t.default])},42076,e=>{"use strict";async function t(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["pickFiles",()=>t])},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),i=e.i(22528),o=e.i(36589),n=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[p,u]=(0,i.createContextScope)(d),[h,m]=p(d),x=r.forwardRef((e,i)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:b,form:j,...v}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(i,e=>C(e)),N=r.useRef(!1),D=!y||j||!!y.closest("form"),[T,S]=(0,o.useControllableState)({prop:p,defaultProp:u??!1,onChange:b,caller:d});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":w(T),"data-disabled":x?"":void 0,disabled:x,value:f,...v,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),D&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),D&&(0,t.jsx)(g,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=d;var f="SwitchThumb",b=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,i=m(f,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:r})});b.displayName=f;var g=r.forwardRef(({__scopeSwitch:e,control:a,checked:i,bubbles:o=!0,...c},d)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,d),h=(0,n.usePrevious)(i),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:o});t.call(e,i),e.dispatchEvent(r)}},[h,i,o]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:u,style:{...c.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>b,"Thumb",()=>b,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,v=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>y],51911)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),i=e.i(21023);let o=(0,i.createServerReference)("40ca799822a3bfaa50f5a2d1aee2c25a9370eb5cd3",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(41001);var n=e.i(64780),l=e.i(16868),c=e.i(83843),d=e.i(97667),p=e.i(53360),u=e.i(55016),h=e.i(91925),m=e.i(83428),x=e.i(81542),f=e.i(70471),b=e.i(59311),g=e.i(31777),w=e.i(8361);e.i(1650);var j=e.i(11495),v=e.i(45811),y=e.i(35364),C=e.i(98127),k=e.i(48306),N=e.i(41957),D=e.i(81846),T=e.i(90382),S=e.i(51911),P=e.i(2828),F=e.i(30153);e.i(50032);var E=e.i(86254);let R=(0,i.createServerReference)("406dafa6f69561d665c3b82c10b766cfb321119c04",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var L=e.i(41413),z=e.i(25235),M=e.i(78521);e.i(13322);var I=e.i(61201),U=e.i(75921),A=e.i(2923),O=e.i(42076);let B=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"]),$={allowPrd:!1,allowPlan:!1,allowMerge:!1};function q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:c,features:d,repositories:h,initialParentId:m,currentAgentType:C,currentModel:T,initialDescription:z,canPushDirectly:M}){let I=(0,w.useSoundAction)("create"),{t:U}=(0,n.useTranslation)("web"),A=i&&(!h||0===h.length||h.some(e=>e.path===i))?i:"",q=c?.approvalGates??$,W=c?.push??!1,H=c?.openPr??!1,Z=c?.ciWatchEnabled!==!1,J=c?.enableEvidence??!1,V=c?.commitEvidence??!1,X=c?.fast!==!1,[Q,Y]=(0,r.useState)(z??"");(0,r.useEffect)(()=>{z&&Y(z)},[z]);let[_,ee]=(0,r.useState)([]),[et,er]=(0,r.useState)({...q}),[ea,es]=(0,r.useState)(W),[ei,eo]=(0,r.useState)(H),[en,el]=(0,r.useState)(c?.ciWatchEnabled!==!1),[ec,ed]=(0,r.useState)(J),[ep,eu]=(0,r.useState)(V),[eh,em]=(0,r.useState)(void 0),[ex,ef]=(0,r.useState)(X),[eb,eg]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[ev,ey]=(0,r.useState)(!0),[eC,ek]=(0,r.useState)(!0),[eN,eD]=(0,r.useState)(void 0),[eT,eS]=(0,r.useState)(void 0),[eP,eF]=(0,r.useState)(A||void 0),[eE,eR]=(0,r.useState)(h??[]),[eL,ez]=(0,r.useState)(!1),[eM,eI]=(0,r.useState)(null),[eU,eA]=(0,r.useState)(!1),eO=(0,r.useRef)(crypto.randomUUID()),eB=(0,r.useRef)(0),e$=(0,r.useRef)(null);(0,r.useEffect)(()=>{c&&(er({...c.approvalGates}),es(c.push),eo(c.openPr),el(!1!==c.ciWatchEnabled),ed(c.enableEvidence),eu(c.commitEvidence),ef(!1!==c.fast))},[c]),(0,r.useEffect)(()=>{eR(h??[])},[h]),(0,r.useEffect)(()=>{e&&m&&em(m)},[e,m]);let[eq,eG]=(0,r.useState)(M??!1);(0,r.useEffect)(()=>{eG(M??!1)},[M]);let eK=(0,r.useRef)(eP);(0,r.useEffect)(()=>{eP&&eP!==eK.current&&(eK.current=eP,R(eP).then(e=>eG(e.canPushDirectly)).catch(()=>eG(!1)))},[eP]),(0,r.useEffect)(()=>{eq&&(ej(!1),es(W),eo(H),ey(!0))},[eq,W,H]);let eW=(0,r.useCallback)(()=>{Y(""),ee([]),er({...q}),es(W),eo(H),el(Z),ed(J),eu(V),em(void 0),eF(A||void 0),eR(h??[]),ef(X),eg(!1),ej(!1),ey(!0),ek(!0),eD(void 0),eS(void 0),eI(null),eB.current=0,ez(!1)},[q,W,H,J,Z,V,X,A,h]),eH=""!==Q.trim()||_.length>0,{attemptClose:eZ}=(0,F.useGuardedDrawerClose)({open:e,isDirty:eH,onClose:a,onReset:eW}),eJ=(0,r.useCallback)(async e=>{for(let t of(eI(null),e)){if(t.size>0xa00000)return void eI(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!B.has(e))return void eI(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eO.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let s=await a.json();ee(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}},[]),eV=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current+=1,1===eB.current&&ez(!0)},[]),eX=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current-=1,0===eB.current&&ez(!1)},[]),eQ=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eY=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current=0,ez(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eJ(t)},[eJ]),e_=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eJ(r))},[eJ]),e0=(0,r.useCallback)(e=>{if(e.preventDefault(),!Q.trim())return;let t=eP??A;t&&(I.play(),s({description:Q.trim(),attachments:_.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:et.allowPrd??!1,allowPlan:et.allowPlan??!1,allowMerge:et.allowMerge??!1},push:!!ew||ea||ei,openPr:!!ew||ei,ciWatchEnabled:en,enableEvidence:ec,commitEvidence:ep,fast:ex,forkAndPr:ew,commitSpecs:ev,rebaseBeforeBranch:eC,...eb?{pending:eb}:{},...eN?{agentType:eN}:{},...eT?{model:eT}:{},...eh?{parentId:eh}:{},sessionId:eO.current}),eW())},[Q,_,et,eP,A,s,ea,ei,ec,en,ep,ex,ew,ev,eC,eb,eN,eT,eh,I,eW]),e1=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eO.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let a=await r.json();ee(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}}catch{}},[]),e5=(0,r.useCallback)(e=>{ee(t=>t.filter(t=>t.id!==e))},[]),e2=(0,r.useCallback)((e,t)=>{ee(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),e3=(0,r.useRef)(null),e4=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e3.current?.requestSubmit())},[]),e6=(0,r.useCallback)(()=>{eA(!0)},[]),e9=(0,r.useCallback)(()=>{setTimeout(()=>{let e=e$.current?.contains(document.activeElement),t=e$.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eA(!1)},0)},[]),e8=d&&d.length>0,e7=!A&&!eP,te=!A&&void 0!==h,tt=[{id:"allowPrd",label:U("createDrawer.prd"),description:U("createDrawer.prdDescription")},{id:"allowPlan",label:U("createDrawer.plan"),description:U("createDrawer.planDescription")},{id:"allowMerge",label:U("createDrawer.merge"),description:U("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:eZ,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(v.DrawerTitle,{children:U("createDrawer.title")})]}),o?(0,t.jsx)(v.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(D.Badge,{variant:"secondary",children:U("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(y.Button,{variant:"outline",onClick:eZ,disabled:o,children:U("createDrawer.cancel")}),(0,t.jsx)(y.Button,{type:"submit",form:"create-feature-form",disabled:!Q.trim()||o||e7,children:o?U("createDrawer.creating"):U("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e3,id:"create-feature-form",onSubmit:e0,onKeyDown:e4,className:"flex flex-col gap-4",children:[te?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)(K,{repositories:eE,value:eP,onChange:eF,onAddRepository:e=>{eR(t=>[...t,e]),eF(e.path)},disabled:o})]}):A?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:h?.find(e=>e.path===A)?.name??A.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":U("createDrawer.fileDropZone"),"data-drag-over":eL?"true":"false",onDragEnter:eV,onDragLeave:eX,onDragOver:eQ,onDrop:eY,className:(0,g.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eL&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:e$,onFocus:e6,onBlur:e9,className:(0,g.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eU&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(k.Textarea,{id:"feature-description",placeholder:U("createDrawer.featurePlaceholder"),value:Q,onChange:e=>Y(e.target.value),onPaste:e_,required:!0,disabled:o,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(e=>(0,t.jsx)(E.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>e5(e.id),disabled:o,loading:e.loading,notes:e.notes,onNotesChange:t=>e2(e.id,t)},e.id))}),eM?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eM}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(L.AgentModelPicker,{initialAgentType:eN??C??"claude-code",initialModel:eT??T??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eD(e),eS(t)},disabled:o,className:"w-55"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"pending-mode",checked:eb,onCheckedChange:eg,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),U("createDrawer.pendingMode")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:ex,onCheckedChange:ef,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Zap,{className:"h-3.5 w-3.5"}),U("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e1,disabled:o,"aria-label":U("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(l.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("chat.attachFiles")})]})]})]})]}),e8&&void 0!==m?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:d,value:eh,onChange:em,disabled:o})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.approve")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tt.map(e=>(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:et[e.id]??!1,onCheckedChange:t=>er(r=>({...r,[e.id]:t})),disabled:o||ex&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ex&&("allowPrd"===e.id||"allowPlan"===e.id)?U("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tt.every(e=>et[e.id]),t={};for(let r of tt)t[r.id]=!e;er(t)},disabled:o,className:(0,g.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",tt.every(e=>et[e.id])&&"text-primary"),children:U("createDrawer.all")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.evidence")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"enable-evidence",size:"sm",checked:ec,onCheckedChange:e=>{ed(e),e||eu(!1)},disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.collect")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.collectDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-evidence",size:"sm",checked:ep,onCheckedChange:eu,disabled:o||!ec||!ei&&!ew}),(0,t.jsx)(N.Label,{htmlFor:"commit-evidence",className:(0,g.cn)("cursor-pointer text-xs font-medium",(!ec||!ei&&!ew)&&"opacity-50"),children:U("createDrawer.addToPr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ei||ew?ec?U("createDrawer.addToPrDescription"):U("createDrawer.requiresEvidence"):U("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:U("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:!!ew||ea||ei,onCheckedChange:e=>{es(e),!e&&ei&&eo(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"push",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.push")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.pushDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:!!ew||ei,onCheckedChange:e=>{eo(e),e||eu(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.pr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.prDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"ci-watch",size:"sm",checked:en,onCheckedChange:el,disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.watch")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"rebase-before-branch",size:"sm",checked:eC,onCheckedChange:ek,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(b.RefreshCw,{className:"h-3 w-3"}),U("createDrawer.sync")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.syncDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-specs",size:"sm",checked:ev,onCheckedChange:ey,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(f.FileText,{className:"h-3 w-3"}),U("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.commitSpecsDescription")})]}),!eq&&(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"fork-and-pr",size:"sm",checked:ew,onCheckedChange:e=>{ej(e),e&&ey(!1)},disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.GitFork,{className:"h-3 w-3"}),U("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),m=(0,r.useRef)(null),x=e.find(e=>e.id===a),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,b=(0,r.useCallback)(e=>{s(e),p(!1),h("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>m.current?.focus(),0):h("")},[l]),(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,g.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",!x&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:x?`${x.name} (${x.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:m,placeholder:o("createDrawer.searchFeatures"),value:u,onChange:e=>h(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>b(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>b(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function K({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),[f,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),{reactFileManager:N}=(0,U.useFeatureFlags)(),{t:D}=(0,n.useTranslation)("web"),S=e.find(e=>e.path===a),P=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.path.toLowerCase().includes(u.toLowerCase())):e,F=(0,r.useCallback)(e=>{s(e),p(!1),x("")},[s]),E=(0,r.useCallback)(async e=>{let t=await (0,A.addRepository)({path:e});if(t.error){j(t.error),b(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),p(!1),x("")}},[i,s]),R=(0,r.useCallback)(async()=>{if(!f){if(N)return void y(!0);b(!0),j(null);try{let e=await (0,M.pickFolder)();if(!e)return void b(!1);await E(e)}catch{y(!0)}finally{b(!1)}}},[f,N,E]),L=(0,r.useCallback)(async e=>{if(y(!1),e){b(!0),j(null);try{await E(e)}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{b(!1)}}},[E]);return(0,r.useEffect)(()=>{l?setTimeout(()=>k.current?.focus(),0):x("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository",disabled:o,"data-testid":"repository-combobox",className:(0,g.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",!S&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:S?S.name:"Select repository..."}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:k,placeholder:D("createDrawer.searchRepositories"),value:u,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===P.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):P.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>F(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(z.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:R,disabled:f,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:[f?(0,t.jsx)(m.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(h.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),w?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:w}):null]})})]}),(0,t.jsx)(I.ReactFileManagerDialog,{open:v,onOpenChange:e=>{e||y(!1)},onSelect:L})]})}function W({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),b=(0,a.usePathname)().startsWith("/create"),g=!x&&b;(0,r.useEffect)(()=>{!b&&x&&f(!1)},[b,x]);let w=(0,r.useCallback)(()=>{m.push("/")},[m]),j=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(q,{open:g,onClose:w,onSubmit:j,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}e.s(["CreateDrawerClient",()=>W],15203)}]);