@shepai/cli 1.202.1-pr606.60460ac → 1.202.2

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 (372) hide show
  1. package/package.json +1 -1
  2. package/web/.next/BUILD_ID +1 -1
  3. package/web/.next/build-manifest.json +2 -2
  4. package/web/.next/fallback-build-manifest.json +2 -2
  5. package/web/.next/prerender-manifest.json +3 -3
  6. package/web/.next/required-server-files.js +2 -2
  7. package/web/.next/required-server-files.json +2 -2
  8. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +4 -4
  9. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +37 -37
  10. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  11. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  12. package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +4 -4
  13. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +35 -35
  14. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +4 -4
  17. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +38 -38
  18. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  19. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
  22. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  25. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +47 -47
  26. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
  29. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
  30. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
  33. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +4 -4
  37. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +35 -35
  38. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/control-center/page/react-loadable-manifest.json +4 -4
  41. package/web/.next/server/app/(dashboard)/control-center/page/server-reference-manifest.json +35 -35
  42. package/web/.next/server/app/(dashboard)/control-center/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(dashboard)/control-center/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +4 -4
  45. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +38 -38
  46. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +4 -4
  49. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +47 -47
  50. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  53. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +47 -47
  54. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +4 -4
  57. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +36 -36
  58. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +4 -4
  61. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +36 -36
  62. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/_global-error.html +2 -2
  65. package/web/.next/server/app/_global-error.rsc +1 -1
  66. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  67. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  69. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  70. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  71. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +4 -4
  72. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +9 -9
  73. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/agent-questions/page/react-loadable-manifest.json +4 -4
  75. package/web/.next/server/app/agent-questions/page/server-reference-manifest.json +11 -11
  76. package/web/.next/server/app/agent-questions/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/agents/[agentType]/page/react-loadable-manifest.json +4 -4
  78. package/web/.next/server/app/agents/[agentType]/page/server-reference-manifest.json +13 -13
  79. package/web/.next/server/app/agents/[agentType]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/agents/page/react-loadable-manifest.json +4 -4
  81. package/web/.next/server/app/agents/page/server-reference-manifest.json +10 -10
  82. package/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +4 -4
  84. package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +18 -18
  85. package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
  86. package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/application/[id]/supervisor/page/react-loadable-manifest.json +4 -4
  88. package/web/.next/server/app/application/[id]/supervisor/page/server-reference-manifest.json +10 -10
  89. package/web/.next/server/app/application/[id]/supervisor/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/applications/page/react-loadable-manifest.json +4 -4
  91. package/web/.next/server/app/applications/page/server-reference-manifest.json +20 -20
  92. package/web/.next/server/app/applications/page.js.nft.json +1 -1
  93. package/web/.next/server/app/applications/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/features/page/react-loadable-manifest.json +4 -4
  95. package/web/.next/server/app/features/page/server-reference-manifest.json +31 -31
  96. package/web/.next/server/app/features/page.js.nft.json +1 -1
  97. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/onboarding/page/react-loadable-manifest.json +4 -4
  99. package/web/.next/server/app/onboarding/page/server-reference-manifest.json +9 -9
  100. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/page/react-loadable-manifest.json +4 -4
  102. package/web/.next/server/app/page/server-reference-manifest.json +9 -9
  103. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/projects/[slug]/items/[itemId]/page/react-loadable-manifest.json +4 -4
  105. package/web/.next/server/app/projects/[slug]/items/[itemId]/page/server-reference-manifest.json +16 -16
  106. package/web/.next/server/app/projects/[slug]/items/[itemId]/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/projects/[slug]/page/react-loadable-manifest.json +4 -4
  108. package/web/.next/server/app/projects/[slug]/page/server-reference-manifest.json +28 -28
  109. package/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/projects/[slug]/pages/page/react-loadable-manifest.json +4 -4
  111. package/web/.next/server/app/projects/[slug]/pages/page/server-reference-manifest.json +12 -12
  112. package/web/.next/server/app/projects/[slug]/pages/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app/projects/[slug]/settings/page/react-loadable-manifest.json +4 -4
  114. package/web/.next/server/app/projects/[slug]/settings/page/server-reference-manifest.json +18 -18
  115. package/web/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/projects/page/react-loadable-manifest.json +4 -4
  117. package/web/.next/server/app/projects/page/server-reference-manifest.json +10 -10
  118. package/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  119. package/web/.next/server/app/settings/page/react-loadable-manifest.json +4 -4
  120. package/web/.next/server/app/settings/page/server-reference-manifest.json +15 -15
  121. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/skills/page/react-loadable-manifest.json +4 -4
  123. package/web/.next/server/app/skills/page/server-reference-manifest.json +17 -17
  124. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/supervisor/feature/[featureId]/page/react-loadable-manifest.json +4 -4
  126. package/web/.next/server/app/supervisor/feature/[featureId]/page/server-reference-manifest.json +10 -10
  127. package/web/.next/server/app/supervisor/feature/[featureId]/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/supervisor/page/react-loadable-manifest.json +4 -4
  129. package/web/.next/server/app/supervisor/page/server-reference-manifest.json +10 -10
  130. package/web/.next/server/app/supervisor/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/supervisor/repo/[repositoryId]/page/react-loadable-manifest.json +4 -4
  132. package/web/.next/server/app/supervisor/repo/[repositoryId]/page/server-reference-manifest.json +10 -10
  133. package/web/.next/server/app/supervisor/repo/[repositoryId]/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/tools/page/react-loadable-manifest.json +4 -4
  135. package/web/.next/server/app/tools/page/server-reference-manifest.json +15 -15
  136. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/version/page/react-loadable-manifest.json +4 -4
  138. package/web/.next/server/app/version/page/server-reference-manifest.json +9 -9
  139. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/chunks/[root-of-the-server]__10e976f3._.js +1 -1
  141. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js +1 -1
  142. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agent-questions_page_actions_4b694f8d.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js +1 -1
  144. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_agents_[agentType]_page_actions_103679a6.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js +1 -1
  146. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_projects_[slug]_pages_page_actions_19d50f6c.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js +1 -1
  148. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_items_[itemId]_work-item-detail-client_tsx_d2e02407._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js +1 -1
  150. package/web/.next/server/chunks/ssr/744ca_web_app_projects_[slug]_settings_project-settings-client_tsx_e8b85ddc._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  152. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +1 -1
  154. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__0af8610a._.js +3 -3
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__0af8610a._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b652a2f._.js +1 -1
  158. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b73253b._.js → [root-of-the-server]__2e388ba3._.js} +2 -2
  159. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b73253b._.js.map → [root-of-the-server]__2e388ba3._.js.map} +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__56cf47e7._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__648730d4._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__68df6415._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bc6bf96._.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js +2 -2
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__9852cb08._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js +1 -1
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__a1167cec._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__a12d0ad7._.js +3 -0
  172. package/web/.next/server/chunks/ssr/{[root-of-the-server]__52ca7f88._.js.map → [root-of-the-server]__a12d0ad7._.js.map} +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba699bec._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0741ee1._.js +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0fa59e6._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__ea26ff90._.js +3 -3
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__ff0095e3._.js +1 -1
  180. package/web/.next/server/chunks/ssr/_07036593._.js +1 -1
  181. package/web/.next/server/chunks/ssr/_07036593._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/_0d2a7595._.js +1 -1
  183. package/web/.next/server/chunks/ssr/_0d2a7595._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/_101de7c3._.js +1 -1
  185. package/web/.next/server/chunks/ssr/_101de7c3._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/{_db111d21._.js → _10f54ace._.js} +2 -2
  187. package/web/.next/server/chunks/ssr/{_db111d21._.js.map → _10f54ace._.js.map} +1 -1
  188. package/web/.next/server/chunks/ssr/_24fca3cf._.js +1 -1
  189. package/web/.next/server/chunks/ssr/_24fca3cf._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/{_6ff832ad._.js → _2759af76._.js} +2 -2
  191. package/web/.next/server/chunks/ssr/{_6ff832ad._.js.map → _2759af76._.js.map} +1 -1
  192. package/web/.next/server/chunks/ssr/_2bc48f3d._.js +1 -1
  193. package/web/.next/server/chunks/ssr/_2bc48f3d._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/{_fb539286._.js → _2bef1982._.js} +2 -2
  195. package/web/.next/server/chunks/ssr/{_fb539286._.js.map → _2bef1982._.js.map} +1 -1
  196. package/web/.next/server/chunks/ssr/_32f66845._.js +1 -1
  197. package/web/.next/server/chunks/ssr/_408848e6._.js +1 -1
  198. package/web/.next/server/chunks/ssr/_408848e6._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/_40e02782._.js +1 -1
  200. package/web/.next/server/chunks/ssr/_40e02782._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/_486d45d6._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_486d45d6._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/{_824d5772._.js → _498cba11._.js} +2 -2
  204. package/web/.next/server/chunks/ssr/{_824d5772._.js.map → _498cba11._.js.map} +1 -1
  205. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  206. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/_5cbb0e22._.js +1 -1
  208. package/web/.next/server/chunks/ssr/_5cbb0e22._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/{_5a3edc88._.js → _673be4f1._.js} +2 -2
  210. package/web/.next/server/chunks/ssr/{_5a3edc88._.js.map → _673be4f1._.js.map} +1 -1
  211. package/web/.next/server/chunks/ssr/_7ba67729._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_7ba67729._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/_805ae1aa._.js +1 -1
  214. package/web/.next/server/chunks/ssr/_805ae1aa._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/_87cf18c3._.js +1 -1
  216. package/web/.next/server/chunks/ssr/_87cf18c3._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/_8a700ff4._.js +1 -1
  218. package/web/.next/server/chunks/ssr/_8a700ff4._.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/_95b97274._.js +1 -1
  220. package/web/.next/server/chunks/ssr/_95b97274._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/{_fbcfaf3a._.js → _9d18d1b1._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{_fbcfaf3a._.js.map → _9d18d1b1._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/{_70ff64a1._.js → _a93687e6._.js} +2 -2
  224. package/web/.next/server/chunks/ssr/{_70ff64a1._.js.map → _a93687e6._.js.map} +1 -1
  225. package/web/.next/server/chunks/ssr/_c2e196ee._.js +1 -1
  226. package/web/.next/server/chunks/ssr/_c2e196ee._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/_ca3b7bf7._.js +1 -1
  228. package/web/.next/server/chunks/ssr/_ca3b7bf7._.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/_d53224a9._.js +1 -1
  230. package/web/.next/server/chunks/ssr/_d53224a9._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/_d573dcc2._.js +1 -1
  232. package/web/.next/server/chunks/ssr/_e2671e14._.js +1 -1
  233. package/web/.next/server/chunks/ssr/_e2671e14._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/_ecd45b17._.js +1 -1
  235. package/web/.next/server/chunks/ssr/_ecd45b17._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/{_f0d45e47._.js → _f46d2018._.js} +2 -2
  237. package/web/.next/server/chunks/ssr/{_f0d45e47._.js.map → _f46d2018._.js.map} +1 -1
  238. package/web/.next/server/chunks/ssr/_f602cc9f._.js +1 -1
  239. package/web/.next/server/chunks/ssr/_f602cc9f._.js.map +1 -1
  240. package/web/.next/server/chunks/ssr/{_20a56008._.js → _f71954a5._.js} +2 -2
  241. package/web/.next/server/chunks/ssr/{_20a56008._.js.map → _f71954a5._.js.map} +1 -1
  242. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  243. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  245. package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js +1 -1
  246. package/web/.next/server/chunks/ssr/src_presentation_web_0e291f0b._.js.map +1 -1
  247. package/web/.next/server/chunks/ssr/{src_presentation_web_40673f0c._.js → src_presentation_web_16c83ab4._.js} +2 -2
  248. package/web/.next/server/chunks/ssr/{src_presentation_web_40673f0c._.js.map → src_presentation_web_16c83ab4._.js.map} +1 -1
  249. package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js +1 -1
  250. package/web/.next/server/chunks/ssr/src_presentation_web_1d8d177f._.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js +1 -1
  252. package/web/.next/server/chunks/ssr/src_presentation_web_450b58fc._.js.map +1 -1
  253. package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js +1 -1
  254. package/web/.next/server/chunks/ssr/src_presentation_web_47727150._.js.map +1 -1
  255. package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js +1 -1
  256. package/web/.next/server/chunks/ssr/src_presentation_web_64fcfc84._.js.map +1 -1
  257. package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js +1 -1
  258. package/web/.next/server/chunks/ssr/src_presentation_web_74b7bdb2._.js.map +1 -1
  259. package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js +1 -1
  260. package/web/.next/server/chunks/ssr/src_presentation_web_82aeca34._.js.map +1 -1
  261. package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js +1 -1
  262. package/web/.next/server/chunks/ssr/src_presentation_web_8a564d47._.js.map +1 -1
  263. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +1 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -1
  265. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js +1 -1
  266. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_f4f3fad9.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js +1 -1
  268. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_agents_page_actions_d4bd4711.js.map +1 -1
  269. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js +1 -1
  270. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_onboarding_page_actions_bb695e8d.js.map +1 -1
  271. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js +1 -1
  272. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_page_actions_ac47e420.js.map +1 -1
  273. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js +1 -1
  274. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_projects_page_actions_c91a23a8.js.map +1 -1
  275. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js +1 -1
  276. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_63c2d912.js.map +1 -1
  277. package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js +1 -1
  278. package/web/.next/server/chunks/ssr/src_presentation_web_a53a3da6._.js.map +1 -1
  279. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_246617fe._.js +3 -3
  280. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js +1 -1
  281. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_adopt-local-directory_ts_75f1f28c._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +1 -1
  283. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js +1 -1
  284. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-directory_ts_1209d917._.js.map +1 -1
  285. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +1 -1
  286. package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js +1 -1
  287. package/web/.next/server/chunks/ssr/src_presentation_web_b1b3c26c._.js.map +1 -1
  288. package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js +1 -1
  289. package/web/.next/server/chunks/ssr/src_presentation_web_b98a4353._.js.map +1 -1
  290. package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js +1 -1
  291. package/web/.next/server/chunks/ssr/src_presentation_web_c96ca051._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/{src_presentation_web_e812a69b._.js → src_presentation_web_cb0d2c28._.js} +2 -2
  293. package/web/.next/server/chunks/ssr/{src_presentation_web_e812a69b._.js.map → src_presentation_web_cb0d2c28._.js.map} +1 -1
  294. package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js +1 -1
  295. package/web/.next/server/chunks/ssr/src_presentation_web_components_66643378._.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js +1 -1
  297. package/web/.next/server/chunks/ssr/src_presentation_web_components_agent-editor_agent-editor-tabs_tsx_d5a954b4._.js.map +1 -1
  298. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  299. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  300. package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js +1 -1
  301. package/web/.next/server/chunks/ssr/src_presentation_web_d3858f16._.js.map +1 -1
  302. package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js +1 -1
  303. package/web/.next/server/chunks/ssr/src_presentation_web_d7f8130c._.js.map +1 -1
  304. package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js +1 -1
  305. package/web/.next/server/chunks/ssr/src_presentation_web_dddd8ccd._.js.map +1 -1
  306. package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js +1 -1
  307. package/web/.next/server/chunks/ssr/src_presentation_web_e13d58b0._.js.map +1 -1
  308. package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js +1 -1
  309. package/web/.next/server/chunks/ssr/src_presentation_web_ee94a9aa._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js +1 -1
  311. package/web/.next/server/chunks/ssr/src_presentation_web_f0fcfdff._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js +1 -1
  313. package/web/.next/server/chunks/ssr/src_presentation_web_f17e8516._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js +1 -1
  315. package/web/.next/server/chunks/ssr/src_presentation_web_f7180fec._.js.map +1 -1
  316. package/web/.next/server/pages/500.html +2 -2
  317. package/web/.next/server/server-reference-manifest.js +1 -1
  318. package/web/.next/server/server-reference-manifest.json +111 -111
  319. package/web/.next/static/chunks/{5faa828877b1e669.js → 03dda23205877d8b.js} +1 -1
  320. package/web/.next/static/chunks/{4bf4f333302e24a4.js → 054e3a5f5ff4db71.js} +1 -1
  321. package/web/.next/static/chunks/{a868014dbe1b4e42.js → 06e58041911c290b.js} +1 -1
  322. package/web/.next/static/chunks/{b5ff852fee23795d.js → 089ef5b749d79ebd.js} +1 -1
  323. package/web/.next/static/chunks/{1a093b13a9d6952e.js → 0d106010c498c198.js} +2 -2
  324. package/web/.next/static/chunks/193e5a0540757f5e.js +1 -0
  325. package/web/.next/static/chunks/{9abc3e68af98e636.js → 25111a2f2597f500.js} +1 -1
  326. package/web/.next/static/chunks/285e724d07901ef6.js +1 -0
  327. package/web/.next/static/chunks/{3c396f63ebefe875.js → 2b2bfc0465b18a7d.js} +1 -1
  328. package/web/.next/static/chunks/{6af99a08ccacdbce.js → 2b436562e69d2827.js} +1 -1
  329. package/web/.next/static/chunks/{8c96a835b3b0dc44.js → 2e3844d0ac487ac7.js} +1 -1
  330. package/web/.next/static/chunks/325859b8a9482427.js +1 -0
  331. package/web/.next/static/chunks/{2773e7b2587bc9cc.js → 44ab458ceb89d85d.js} +1 -1
  332. package/web/.next/static/chunks/4fdf36904f5421a6.js +1 -0
  333. package/web/.next/static/chunks/59004c65d552581c.js +1 -0
  334. package/web/.next/static/chunks/{0edcdc8a2dd06b7a.js → 5c4837e88a3431b8.js} +1 -1
  335. package/web/.next/static/chunks/{a131f868af7f1f7c.js → 74cdd562eb663f72.js} +1 -1
  336. package/web/.next/static/chunks/{0315591c972888a6.js → 7670d76d4ee743e6.js} +1 -1
  337. package/web/.next/static/chunks/{02d88da9fd656fcd.js → 83fc784ce05a701e.js} +1 -1
  338. package/web/.next/static/chunks/{460cedaa85c821e7.js → 8dd4fdd20b103a66.js} +1 -1
  339. package/web/.next/static/chunks/9336bdc7fc319282.js +1 -0
  340. package/web/.next/static/chunks/9d285565922b2de7.js +1 -0
  341. package/web/.next/static/chunks/{45eeca36eabbed23.js → 9f7f2a11937d87eb.js} +1 -1
  342. package/web/.next/static/chunks/{c3931fdbae836be6.js → a7c7bcfb6f7696a3.js} +1 -1
  343. package/web/.next/static/chunks/{9f7985e2a73929a2.js → a8f57d2a12849f32.js} +1 -1
  344. package/web/.next/static/chunks/{0e1c933065a1100a.js → abe98954ccdf29db.js} +1 -1
  345. package/web/.next/static/chunks/{4378715fa2b5e7de.js → b05808da85e8b34c.js} +1 -1
  346. package/web/.next/static/chunks/{b5dc7979d66caa38.js → b5f83e5e1dad23d5.js} +1 -1
  347. package/web/.next/static/chunks/{6d2074fa3453d333.js → b8293a56f257e5a2.js} +1 -1
  348. package/web/.next/static/chunks/{bc5b87e4068ba11d.js → c61c5e97c76dc733.js} +1 -1
  349. package/web/.next/static/chunks/c6b411bf31744ca7.js +1 -0
  350. package/web/.next/static/chunks/{bdaa907bf3d1d932.js → c732d6cc4c5e4343.js} +1 -1
  351. package/web/.next/static/chunks/{25a200f055ae5cba.js → d214d6a670f48d79.js} +1 -1
  352. package/web/.next/static/chunks/{6901861cb53ab483.js → d7b17a93a26e97c8.js} +1 -1
  353. package/web/.next/static/chunks/{a0325f77bbccc63d.js → d8f14fac959a6bd0.js} +1 -1
  354. package/web/.next/static/chunks/{24ea54516dc249c0.js → d98912f5b6cf4938.js} +1 -1
  355. package/web/.next/static/chunks/{21500b3fe3754296.js → df79667c16344317.js} +1 -1
  356. package/web/.next/static/chunks/{05e8df10619fb980.js → ec8f19328ad1ecd4.js} +1 -1
  357. package/web/.next/static/chunks/{e6e6ba783b2e4d14.js → f0157331838ac962.js} +1 -1
  358. package/web/.next/static/chunks/{c687ed21b9518d73.js → f757d865fae71faf.js} +1 -1
  359. package/web/.next/static/chunks/fb3cbb7f575a7128.js +1 -0
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__52ca7f88._.js +0 -3
  361. package/web/.next/static/chunks/03d7b81c2554d52f.js +0 -1
  362. package/web/.next/static/chunks/15acdaaea57bb459.js +0 -1
  363. package/web/.next/static/chunks/39fe1c1397d5483b.js +0 -1
  364. package/web/.next/static/chunks/495883829026f13f.js +0 -1
  365. package/web/.next/static/chunks/4b3a4f416a6eb1ac.js +0 -1
  366. package/web/.next/static/chunks/4b4160f36cf2a3d6.js +0 -1
  367. package/web/.next/static/chunks/7269537b2188650d.js +0 -1
  368. package/web/.next/static/chunks/b1534b2f3d814fef.js +0 -1
  369. package/web/.next/static/chunks/f6dc1ba364203bb2.js +0 -1
  370. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_buildManifest.js +0 -0
  371. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_clientMiddlewareManifest.json +0 -0
  372. /package/web/.next/static/{My4IQDygZ4BFTXkkKanja → 9zd-B2rWybTaAgE74IKiK}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,917840,e=>{"use strict";var t=e.i(152155),r=e.i(711434),a=e.i(360112),s=e.i(939835),o=e.i(573324),n=e.i(311530),i=e.i(70311),l=e.i(903463),d=e.i(681930),c=e.i(71622),u=e.i(172637),p=e.i(508893);let m=(0,p.createServerReference)("608cb7bed4e740de6ec1034873b198d85e0771cdfb",p.callServer,void 0,p.findSourceMapURL,"deleteRepository");var h=e.i(857306);let x=(0,p.createServerReference)("40127b07baac3bb5494e3d8ad7b721b35a467f4a93",p.callServer,void 0,p.findSourceMapURL,"getFeatureMetadata");var f=e.i(648034),g=e.i(873504),y=e.i(808361),b=e.i(118354),v=e.i(672971),j=e.i(799045);e.i(541001);var w=e.i(64780);function N(e,t){let r=new Map;for(let e of t)"dependencyEdge"===e.type&&r.set(e.target,e.source);let a=new Map,s=new Map,o=new Map;for(let t of e)if("featureNode"===t.type){let e=t.data;a.set(t.id,{nodeId:t.id,data:e,parentNodeId:r.get(t.id),...e.applicationId&&{applicationId:e.applicationId}})}else"repositoryNode"===t.type?s.set(t.id,{nodeId:t.id,data:t.data}):"applicationNode"===t.type&&o.set(t.id,{nodeId:t.id,data:t.data});return{featureMap:a,repoMap:s,applicationMap:o}}function k(e,t){return(void 0===t.state||t.state===e.state)&&(void 0===t.lifecycle||t.lifecycle===e.lifecycle)&&(void 0===t.name||t.name===e.name)&&(void 0===t.description||t.description===e.description)}function C(e,t){if(e.size!==t.size)return!1;for(let[r,a]of e){let e=t.get(r);if(!e||a.parentNodeId!==e.parentNodeId||a.data!==e.data&&JSON.stringify(a.data)!==JSON.stringify(e.data))return!1}return!0}let S=(0,b.createLogger)("[Polling]"),I=0,D=0;function T(e,p){let b=(0,r.useRouter)(),T=(0,y.useSoundAction)("delete"),A=(0,y.useSoundAction)("create"),[P,F]=(0,t.useState)(!1),{nodes:M,edges:R,reconcile:E,updateFeature:$,addPendingFeature:L,removeFeature:z,restoreFeature:B,addRepository:O,removeRepository:U,replaceRepository:W,getFeatureRepositoryPath:q,getRepositoryData:H,getRepoMapSize:G,addApplication:_,removeApplication:V,setCallbacks:Y,beginMutation:J,endMutation:K,isMutating:X}=function(e,r,a=!1){let{i18n:o}=(0,w.useTranslation)(),n=(0,t.useMemo)(()=>(0,s.getCanvasLayoutDefaults)(o.dir()),[o]),i=(0,t.useMemo)(()=>N(e,r),[]),[l,d]=(0,t.useState)(i.featureMap),[c,u]=(0,t.useState)(i.repoMap),[p,m]=(0,t.useState)(i.applicationMap),[h,x]=(0,t.useState)(new Map),f=(0,t.useRef)(new Map),g=(0,t.useRef)(new Set),y=(0,t.useRef)(0),b=(0,t.useRef)(new Set),v=(0,t.useRef)(new Set),j=(0,t.useRef)(new Set),S=(0,t.useRef)({}),I=(0,t.useMemo)(()=>({onNodeAction:e=>S.current.onNodeAction?.(e),onNodeSettings:e=>S.current.onNodeSettings?.(e),onFeatureDelete:(e,t,r,a)=>S.current.onFeatureDelete?.(e,t,r,a),onRepositoryAdd:e=>S.current.onRepositoryAdd?.(e),onRepositoryClick:e=>S.current.onRepositoryClick?.(e),onRepositoryDelete:e=>S.current.onRepositoryDelete?.(e),onRetryFeature:e=>S.current.onRetryFeature?.(e),onStartFeature:e=>S.current.onStartFeature?.(e),onArchiveFeature:e=>S.current.onArchiveFeature?.(e),onUnarchiveFeature:e=>S.current.onUnarchiveFeature?.(e),onApplicationClick:e=>S.current.onApplicationClick?.(e),onApplicationDelete:e=>S.current.onApplicationDelete?.(e),onApplicationCreateSddFeature:e=>S.current.onApplicationCreateSddFeature?.(e)}),[]),D=(0,t.useRef)(l);D.current=l;let T=(0,t.useRef)(c);T.current=c;let A=(0,t.useMemo)(()=>{if(a)return l;let e=new Map;for(let[t,r]of l)"archived"!==r.data.state&&e.set(t,r);return e.size===l.size?l:e},[l,a]),P=(0,t.useMemo)(()=>(function(e,t,r,a,s){let o=[],n=[],i=e=>e.replace(/\\/g,"/"),l=new Map;for(let[e,r]of t)r.data.repositoryPath&&l.set(i(r.data.repositoryPath),e);let d=new Map;if(s)for(let[e,t]of s)t.data.id&&d.set(t.data.id,e);let c=new Map;for(let[e,r]of[...t.entries()].sort((e,t)=>{let r=e[1].data.createdAt,a=t[1].data.createdAt;return("number"!=typeof r||Number.isNaN(r)?1/0:r)-("number"!=typeof a||Number.isNaN(a)?1/0:a)})){let t={...r.data,...a?.onRepositoryAdd&&{onAdd:()=>a.onRepositoryAdd(e)},...a?.onRepositoryClick&&{onClick:()=>a.onRepositoryClick(e)},...a?.onRepositoryDelete&&{onDelete:a.onRepositoryDelete}};o.push({id:e,type:"repositoryNode",position:{x:0,y:0},data:t})}for(let[t,s,u]of[...[...e.entries()].map(([e,t])=>[e,t,!1]),...[...r.entries()].filter(([t])=>!e.has(t)).map(([e,t])=>[e,t,!0])]){let p="creating"===s.data.state||u,m={...s.data,...!p&&a?.onNodeAction&&{onAction:()=>a.onNodeAction(t)},...!p&&a?.onNodeSettings&&{onSettings:()=>a.onNodeSettings(t)},...!p&&a?.onFeatureDelete&&{onDelete:a.onFeatureDelete},...!p&&"error"===s.data.state&&a?.onRetryFeature&&{onRetry:a.onRetryFeature},...!p&&"pending"===s.data.state&&a?.onStartFeature&&{onStart:a.onStartFeature},...!p&&("running"===s.data.state||"action-required"===s.data.state)&&a?.onStopFeature&&{onStop:a.onStopFeature},...!p&&"archived"!==s.data.state&&"deleting"!==s.data.state&&a?.onArchiveFeature&&{onArchive:a.onArchiveFeature},...!p&&"archived"===s.data.state&&a?.onUnarchiveFeature&&{onUnarchive:a.onUnarchiveFeature}};o.push({id:t,type:"featureNode",position:{x:0,y:0},data:m});let h=s.applicationId?d.get(s.applicationId):void 0;if(s.parentNodeId&&(e.has(s.parentNodeId)||r.has(s.parentNodeId)))n.push({id:`dep-${s.parentNodeId}-${t}`,source:s.parentNodeId,target:t,type:"dependencyEdge"});else if(h)n.push({id:`dep-${h}-${t}`,source:h,target:t,type:"dependencyEdge"});else{let e=i(s.data.repositoryPath),r=l.get(e)??function(e){if(c.has(e))return c.get(e);let t=`virtual-repo-${e}`,r=e.split("/").filter(Boolean).at(-1)??e;return o.push({id:t,type:"repositoryNode",position:{x:0,y:0},data:{name:r,repositoryPath:e}}),c.set(e,t),t}(e);n.push({id:`edge-${r}-${t}`,source:r,target:t,style:{strokeDasharray:"5 5"}})}}if(s)for(let[e,t]of s){let r={...t.data,...a?.onApplicationClick&&{onClick:()=>a.onApplicationClick(t.data.id)},...a?.onApplicationDelete&&{onDelete:a.onApplicationDelete},...a?.onApplicationCreateSddFeature&&{onCreateSddFeature:a.onApplicationCreateSddFeature}};o.push({id:e,type:"applicationNode",position:{x:0,y:0},data:r})}let u=new Set;for(let e of n)"dependencyEdge"===e.type&&u.add(e.source);let p=n.length>0;for(let e of o){let t=e.data;t.showHandles=p,"featureNode"===e.type&&(t.hasChildren=u.has(e.id))}return{nodes:o,edges:n}})(A,c,h,I,p),[A,c,h,I,p]),F=(0,t.useRef)({key:"",positions:new Map}),{nodes:M,edges:R}=(0,t.useMemo)(()=>{let e=P.nodes.map(e=>e.id).sort().join(","),t=P.edges.map(e=>`${e.source}-${e.target}`).sort().join(","),r=`${e}|${t}|${n.direction}`;if(r!==F.current.key){let e=(0,s.layoutWithDagre)(P.nodes,P.edges,n),t=new Map;for(let r of e.nodes)t.set(r.id,{position:r.position,targetPosition:r.targetPosition,sourcePosition:r.sourcePosition});let a=F.current.positions;if(a.size>0){let r=0,s=0;for(let[e,o]of t){let t=a.get(e);if(t){r=t.position.x-o.position.x,s=t.position.y-o.position.y;break}}if(0!==r||0!==s){for(let e of t.values())e.position={x:e.position.x+r,y:e.position.y+s};for(let t of e.nodes)t.position={x:t.position.x+r,y:t.position.y+s}}}return F.current={key:r,positions:t},e}let{positions:a}=F.current;return{nodes:P.nodes.map(e=>{let t=a.get(e.id);return t?{...e,...t}:e}),edges:P.edges}},[P,n]),E=(0,t.useCallback)((e,t)=>{if(y.current>0)return;let{featureMap:r,repoMap:a}=N(e,t),s=new Set([...r.values()].map(e=>`${e.data.name}\0${e.data.repositoryPath}`));d(e=>{let t=[...e.entries()].filter(([,e])=>"creating"===e.data.state),a=new Map(r);for(let[e,r]of t){let t=`${r.data.name}\0${r.data.repositoryPath}`;s.has(t)||a.set(e,r)}let o=new Set;for(let[t,r]of e)"deleting"===r.data.state&&(a.has(t)?a.set(t,{...a.get(t),data:{...a.get(t).data,state:"deleting"}}):v.current.has(t)||(a.set(t,r),o.add(t)));for(let[e,t]of(v.current=o,f.current)){let r=a.get(e);r&&(a.set(e,{...r,data:{...r.data,...t}}),f.current.delete(e))}return C(e,a)?e:a}),x(e=>{if(0===e.size)return e;let t=!1,r=new Map(e);for(let[a,o]of e){let e=`${o.data.name}\0${o.data.repositoryPath}`;s.has(e)&&(r.delete(a),t=!0)}return t?r:e}),u(e=>{let t=new Map(a);for(let e of j.current)t.has(e)?t.delete(e):j.current.delete(e);let r=new Set([...a.values()].map(e=>e.data.repositoryPath));for(let[a,s]of e){if(t.has(a)||r.has(s.data.repositoryPath)){g.current.delete(a);continue}(a.startsWith("repo-temp-")||g.current.has(a))&&t.set(a,s)}return C(e,t)?e:t});let{applicationMap:o}=N(e,t);m(e=>C(e,o)?e:o)},[]),$=(0,t.useCallback)((e,t)=>{d(r=>{let a=r.get(e);if(!a)return f.current.set(e,{...f.current.get(e),...t}),r;if(f.current.delete(e),k(a.data,t))return r;let s=new Map(r);return s.set(e,{...a,data:{...a.data,...t}}),s}),x(r=>{let a=r.get(e);if(!a||k(a.data,t))return r;let s=new Map(r);return s.set(e,{...a,data:{...a.data,...t}}),s})},[]),L=(0,t.useCallback)((e,t,r)=>{x(a=>{let s=new Map(a);return s.set(e,{nodeId:e,data:t,parentNodeId:r,...t.applicationId&&{applicationId:t.applicationId}}),s})},[]),z=(0,t.useCallback)(e=>{x(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r})},[]),B=(0,t.useCallback)(e=>{d(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r})},[]),O=(0,t.useCallback)((e,t)=>{d(r=>{let a=new Map(r);return a.set(e,t),a})},[]),U=(0,t.useCallback)((e,t)=>{g.current.add(e),j.current.delete(e),u(r=>{let a=new Map(r);return a.set(e,{nodeId:e,data:t}),a})},[]),W=(0,t.useCallback)(e=>{g.current.delete(e),j.current.add(e),u(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r})},[]),q=(0,t.useCallback)((e,t,r)=>{g.current.delete(e),g.current.add(t),u(a=>{if(!a.has(e))return a;let s=new Map(a);return s.delete(e),s.set(t,{nodeId:t,data:r}),s})},[]),H=(0,t.useCallback)((e,t)=>{m(r=>{let a=new Map(r);return a.set(e,{nodeId:e,data:t}),a})},[]),G=(0,t.useCallback)(e=>{m(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r})},[]),_=(0,t.useCallback)(e=>D.current.get(e)?.data.repositoryPath,[]),V=(0,t.useCallback)(e=>T.current.get(e)?.data,[]),Y=(0,t.useCallback)(()=>T.current.size,[]),J=(0,t.useCallback)(e=>{S.current=e},[]),K=(0,t.useCallback)(()=>{y.current++},[]),X=(0,t.useCallback)((e=3e3)=>{let t=setTimeout(()=>{y.current=Math.max(0,y.current-1),b.current.delete(t)},e);b.current.add(t)},[]),Z=(0,t.useCallback)(()=>y.current>0,[]);return(0,t.useEffect)(()=>{let e=b.current;return()=>{for(let t of e)clearTimeout(t);e.clear()}},[]),{nodes:M,edges:R,reconcile:E,updateFeature:$,addPendingFeature:L,removePendingFeature:z,removeFeature:B,restoreFeature:O,addRepository:U,removeRepository:W,replaceRepository:q,getFeatureRepositoryPath:_,getRepositoryData:V,getRepoMapSize:Y,addApplication:H,removeApplication:G,setCallbacks:J,beginMutation:K,endMutation:X,isMutating:Z}}(e,p,P),Z=(0,t.useRef)(M),Q=(0,t.useRef)(R);(0,t.useEffect)(()=>{Z.current=M,Q.current=R},[M,R]);let ee=(0,t.useMemo)(()=>e.map(e=>e.id).sort().join(","),[e]),et=(0,t.useMemo)(()=>e.filter(e=>"featureNode"===e.type).map(e=>{let t=e.data;return`${e.id}:${t.state}:${t.lifecycle}`}).sort().join(","),[e]),er=(0,t.useRef)("");(0,t.useEffect)(()=>{let t=`${ee}|${et}`;t!==er.current&&(er.current=t,E(e,p))},[ee,et,e,p,E]);let ea=(0,t.useRef)(new Map),{events:es,connectionStatus:eo}=(0,f.useAgentEventsContext)(),{store:en}=(0,g.useDeploymentStatusContext)();(0,t.useEffect)(()=>{let t=ea.current;for(let r of e){if("featureNode"!==r.type)continue;let e=r.data,s=t.get(r.id);void 0!==s&&s!==e.state&&(es.some(t=>t.featureId===e.featureId&&(0,j.mapEventTypeToState)(t.eventType)===e.state)||("done"===e.state?a.toast.success(e.name,{description:"Feature completed!"}):"action-required"===e.state?a.toast.warning(e.name,{description:"Waiting for your approval",action:{label:"Review",onClick:()=>b.push(`/feature/${e.featureId}`)}}):"error"===e.state&&a.toast.error(e.name,{description:e.errorMessage??"Agent failed"}))),t.set(r.id,e.state)}},[et,e,es,b]);let ei=(0,t.useRef)(0);(0,t.useEffect)(()=>{if(ei.current>es.length&&(ei.current=0),es.length<=ei.current)return;let e=es.slice(ei.current);for(let{featureId:t,state:r,lifecycle:a}of(ei.current=es.length,(0,j.resolveSseEventUpdates)(e)))if(void 0!==r||void 0!==a){let e=`feat-${t}`,s=Z.current.find(t=>t.id===e),o=s?s.data.state:void 0;if("deleting"===o||"error"===r&&X()&&"running"===o)continue;$(e,{...void 0!==r&&{state:r},...void 0!==a&&{lifecycle:a}})}},[es,$,X]),(0,t.useEffect)(()=>{let e=e=>{let{featureId:t}=e.detail;J(),$(`feat-${t}`,{state:"running"}),K()};return window.addEventListener("shep:feature-approved",e),()=>window.removeEventListener("shep:feature-approved",e)},[$,J,K]);let el=(0,t.useRef)(new Set),ed=(0,t.useRef)(0);(0,t.useEffect)(()=>{if(ed.current>es.length&&(ed.current=0),es.length<=ed.current)return;let e=es.slice(ed.current);for(let t of(ed.current=es.length,e)){if("Feature metadata updated"!==t.message||el.current.has(t.featureId))continue;el.current.add(t.featureId);let e=`feat-${t.featureId}`;x(t.featureId).then(t=>{t&&$(e,{name:t.name,description:t.description})}).catch(()=>{})}},[es,$]);let ec=(0,t.useRef)("connected"===eo);ec.current="connected"===eo,(0,t.useEffect)(()=>{S.debug("polling enabled (15000ms recovery interval)");let e=setInterval(async()=>{if(!document.hidden&&!ec.current&&!X())try{let e=await fetch("/api/graph-data");if(!e.ok)throw Error(`status ${e.status}`);let{nodes:t,edges:r,deployments:a}=await e.json();E(t,r),Array.isArray(a)&&en.hydrate(a)}catch{S.warn("recovery poll failed — will retry next interval")}},15e3);return()=>{S.debug("polling disabled"),clearInterval(e)}},[E,X,en]);let eu=(0,t.useCallback)(e=>{},[]),ep=(0,t.useCallback)(e=>{},[]),em=(0,t.useCallback)((e,t,r)=>{let a=t?.featureId?`feat-${t.featureId}`:`feature-${Date.now()}-${I++}`,s={name:t?.name??"New Feature",description:t?.description??"Describe what this feature does",featureId:t?.featureId??`#${a.slice(-4)}`,lifecycle:"requirements",state:t?.state??"running",progress:0,repositoryPath:t?.repositoryPath??"",branch:t?.branch??"",...t?.applicationId&&{applicationId:t.applicationId}};return L(a,s,"dependencyEdge"===r&&e?e:void 0),a},[L]),eh=(0,t.useCallback)(e=>{let t=`feat-${e}`;J(),$(t,{state:"running"}),(0,i.resumeFeature)(e).then(e=>{e.error?($(t,{state:"error"}),a.toast.error(e.error)):a.toast.success("Feature resumed")}).catch(()=>{$(t,{state:"error"}),a.toast.error("Failed to resume feature")}).finally(()=>K())},[$,J,K]),ex=(0,t.useCallback)(e=>{let t=`feat-${e}`;J(),$(t,{state:"running"}),(0,l.startFeature)(e).then(e=>{e.error?($(t,{state:"pending"}),a.toast.error(e.error)):a.toast.success("Feature started")}).catch(()=>{$(t,{state:"pending"}),a.toast.error("Failed to start feature")}).finally(()=>K())},[$,J,K]),ef=(0,t.useCallback)(e=>{J(),(0,d.stopFeature)(e).then(e=>{e.error?a.toast.error(e.error):a.toast.success("Agent stopped")}).catch(()=>{a.toast.error("Failed to stop agent")}).finally(()=>K())},[J,K]),eg=(0,t.useCallback)(e=>{let t=`feat-${e}`;J(),$(t,{state:"archived"}),(0,o.archiveFeature)(e).then(e=>{e.error?($(t,{state:"done"}),a.toast.error(e.error)):a.toast.success("Feature archived")}).catch(()=>{$(t,{state:"done"}),a.toast.error("Failed to archive feature")}).finally(()=>K())},[$,J,K]),ey=(0,t.useCallback)(e=>{let t=`feat-${e}`;J(),$(t,{state:"done"}),(0,c.unarchiveFeature)(e).then(e=>{e.error?($(t,{state:"archived"}),a.toast.error(e.error)):a.toast.success("Feature unarchived")}).catch(()=>{$(t,{state:"archived"}),a.toast.error("Failed to unarchive feature")}).finally(()=>K())},[$,J,K]),eb=(0,t.useCallback)((e,t,r,s)=>{let o=`feat-${e}`,i=[];if(!0===r){let e=[o];for(;e.length>0;){let t=e.shift();for(let r of Q.current)"dependencyEdge"===r.type&&r.source===t&&(i.push(r.target),e.push(r.target))}}let l=new Map;for(let e of[o,...i]){let t=Z.current.find(t=>t.id===e);t&&l.set(e,t.data.state)}for(let e of(J(),$(o,{state:"deleting"}),i))$(e,{state:"deleting"});T.play(),b.push("/control-center"),(0,n.deleteFeature)(e,t,r,s).then(e=>{if(e.error){for(let[e,t]of l)t&&$(e,{state:t});a.toast.error(e.error)}else for(let e of(z(o),i))z(e)}).catch(()=>{for(let[e,t]of l)t&&$(e,{state:t});a.toast.error("Failed to delete feature")}).finally(()=>K())},[b,T,$,z,J,K]),ev=(0,t.useCallback)(async(e,t)=>{let r=`repo-${e}`,s=new Set(Q.current.filter(e=>e.source===r).map(e=>e.target)),o=H(r),n=new Map;for(let e of s){let t=Z.current.find(t=>t.id===e);t&&n.set(e,{nodeId:e,data:t.data})}let i=()=>{for(let[e,t]of(o&&O(r,o),n))B(e,t)};for(let e of(J(),U(r),s))z(e);try{let r=await m(e,{deleteFromDisk:t?.deleteFromDisk===!0});if(!r.success){a.toast.error(r.error??"Failed to remove repository"),i();return}T.play()}catch{a.toast.error("Failed to remove repository"),i()}finally{K()}},[T,U,z,O,B,H,J,K]),ej=(0,t.useCallback)(async e=>{let t=(0,v.featureIdForApplication)(e);J(),V(t),T.play();try{let t=await (0,h.deleteApplication)(e);t.error&&a.toast.error(t.error)}catch{a.toast.error("Failed to delete application")}finally{K()}},[T,V,J,K]),ew=(0,t.useCallback)(e=>{let t=(0,s.layoutWithDagre)(Z.current,Q.current,{...(0,s.getCanvasLayoutDefaults)(),direction:e});E(t.nodes,t.edges)},[E]);return{nodes:M,edges:R,onNodesChange:eu,handleConnect:ep,handleAddRepository:(0,t.useCallback)(e=>{let t=0===G(),r=`repo-temp-${++D}`,s=e.replace(/[\\/]+$/,"").split(/[\\/]/).pop()??e;return J(),O(r,{name:s,repositoryPath:e,id:r,createdAt:Date.now(),gitInfoStatus:"loading"}),(0,u.addRepository)({path:e,name:s}).then(e=>{if(e.error){U(r),a.toast.error(e.error);return}let t=e.repository;W(r,`repo-${t.id}`,{name:t.name,repositoryPath:t.path,id:t.id,createdAt:t.createdAt instanceof Date?t.createdAt.getTime():Number(t.createdAt)}),A.play()}).catch(()=>{U(r),a.toast.error("Failed to add repository")}).finally(()=>K()),{wasEmpty:t,repoPath:e,tempNodeId:r}},[O,U,W,A,G,J,K]),handleArchiveFeature:eg,handleLayout:ew,handleDeleteFeature:eb,handleRetryFeature:eh,handleStartFeature:ex,handleStopFeature:ef,handleUnarchiveFeature:ey,handleDeleteRepository:ev,handleDeleteApplication:ej,createFeatureNode:em,addApplication:_,showArchived:P,setShowArchived:F,getFeatureRepositoryPath:q,getRepositoryData:H,setCallbacks:Y}}e.s(["useControlCenterState",()=>T],917840)},948246,e=>{"use strict";var t=e.i(679606),r=e.i(120942),a=e.i(992786),s=e.i(152155),o=e.i(711434),n=e.i(591925),i=e.i(3214);e.i(541001);var l=e.i(64780),d=e.i(131777),c=e.i(735364);e.i(454793);var u=e.i(207729);e.i(547506);var p=e.i(189313),m=e.i(292002),h=e.i(382569),x=e.i(208986),f=e.i(338573),g=e.i(619933),y=e.i(267669),b=e.i(724042),v=e.i(64970),j=e.i(949228),w=e.i(565530),N=e.i(907311),k=e.i(194365),C=e.i(438227),S=e.i(248109),I=e.i(626960),D=e.i(113551);e.i(81803);var T=e.i(872714),A=e.i(602287),P=e.i(474363),F=e.i(141957),M=e.i(102828),R=e.i(8537),E=e.i(175921),$=e.i(676852),L=e.i(457779),z=e.i(680554),B=e.i(780519);function O({data:e,selected:a}){let{t:n,i18n:u}=(0,l.useTranslation)("web"),p=(0,o.useRouter)(),O="rtl"===u.dir(),U=O?m.Position.Right:m.Position.Left,W=O?m.Position.Left:m.Position.Right,q=(0,E.useFeatureFlags)(),[H,G]=(0,s.useState)(!1),[_,V]=(0,s.useState)(!1);(0,s.useEffect)(()=>{H&&V(!1)},[H]);let Y=e.id?`repo-${e.id}`:`repo-${e.name}`,J=(0,z.useTurnStatus)(Y),K=(0,$.useRepositoryActions)(e.repositoryPath?{repositoryId:e.id,repositoryPath:e.repositoryPath}:null),X=(0,R.useDeployAction)(e.repositoryPath?{targetId:e.repositoryPath,targetType:"repository",repositoryPath:e.repositoryPath}:null),Z="Booting"===X.status||"Ready"===X.status,Q=(0,s.useCallback)((t,r)=>{if(!e.repositoryPath)return;let a=t.preview?t.preview.slice(0,200):"Unknown conversation",s=["Continue work from a previous agent session.","","## Session Context",`- Session ID: ${t.id}`,`- Messages: ${t.messageCount}`,t.lastMessageAt?`- Last active: ${t.lastMessageAt}`:"",`- Conversation file: ${r}`,"","## Session Preview",`> ${a}`,"","## Instructions","1. Read the full conversation history from the file above",`2. Analyze the current state of the repository — what was done, what remains`,"3. Create or update spec files to accurately reflect the current state and remaining work","4. Continue implementing any unfinished work from the conversation"].filter(Boolean).join("\n");p.push((0,D.buildCreateUrl)({repo:e.repositoryPath,prompt:s}))},[e.repositoryPath,p]);return(0,t.jsxs)("div",{className:(0,d.cn)("group relative",e.onDelete&&e.id&&"ps-10"),style:{direction:O?"rtl":"ltr"},children:[e.showHandles?(0,t.jsx)(r.Handle,{type:"target",position:U,isConnectable:!1,className:"opacity-0!",style:{top:70}}):null,e.onDelete&&e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute -start-3 top-1/2 -translate-y-1/2 opacity-0 transition-opacity group-hover:opacity-100",children:(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{"aria-label":n("repositoryNode.removeRepository"),"data-testid":"repository-node-delete-button",onClick:e=>{e.stopPropagation(),G(!0)},className:"bg-card text-muted-foreground hover:border-destructive hover:text-destructive flex h-7 w-7 cursor-pointer items-center justify-center rounded-full border shadow-sm transition-colors",children:(0,t.jsx)(y.Trash2,{className:"h-3.5 w-3.5"})})}),(0,t.jsx)(M.TooltipContent,{children:n("repositoryNode.removeRepository")})]})})}),(0,t.jsx)(A.Dialog,{open:H,onOpenChange:G,children:(0,t.jsxs)(A.DialogContent,{className:"max-w-sm",children:[(0,t.jsxs)(A.DialogHeader,{children:[(0,t.jsx)(A.DialogTitle,{children:n("repositoryNode.removeConfirmTitle")}),(0,t.jsxs)(A.DialogDescription,{children:[(0,t.jsx)(I.Trans,{t:n,i18nKey:"repositoryNode.removeConfirmDescription",values:{name:e.name},components:{strong:(0,t.jsx)("strong",{})}})," ",n(_?"repositoryNode.removeConfirmDescriptionDeleteFiles":"repositoryNode.removeConfirmDescriptionKeepFiles")]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(P.Checkbox,{id:"repository-delete-from-disk",checked:_,onCheckedChange:e=>V(!0===e),"data-testid":"repository-node-delete-from-disk-checkbox","aria-label":n("repositoryNode.deleteFromDiskLabel")}),(0,t.jsx)(F.Label,{htmlFor:"repository-delete-from-disk",className:"cursor-pointer text-sm font-normal",children:n("repositoryNode.deleteFromDiskLabel")})]}),(0,t.jsxs)(A.DialogFooter,{className:"grid grid-cols-2 gap-2 sm:flex-none",children:[(0,t.jsx)(A.DialogClose,{asChild:!0,children:(0,t.jsx)(c.Button,{variant:"outline",children:n("repositoryNode.cancel")})}),(0,t.jsx)(c.Button,{variant:"destructive","data-testid":"repository-node-delete-confirm-button",onClick:()=>{G(!1),e.onDelete?.(e.id,{deleteFromDisk:_})},children:n("repositoryNode.remove")})]})]})})]}):null,(0,t.jsxs)("div",{role:"button",tabIndex:0,"data-testid":"repository-node-card","data-repo-name":e.name,onClick:t=>{t.stopPropagation(),e.onClick?.()},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t.stopPropagation(),e.onClick?.())},className:(0,d.cn)("nodrag bg-card flex w-[26rem] cursor-pointer flex-col overflow-hidden rounded-xl border shadow-sm transition-[border-color,box-shadow] duration-200 dark:bg-neutral-800/80",a&&"border-blue-400 dark:border-amber-500/60"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",children:[(0,t.jsx)(h.Github,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("span",{"data-testid":"repository-node-name",className:"min-w-0 truncate text-sm font-medium",children:e.name}),(0,t.jsxs)("div",{className:(0,d.cn)("flex shrink-0 items-center gap-2",(e.repositoryPath??e.onAdd)&&"ms-auto"),onClick:e=>e.stopPropagation(),children:[e.repositoryPath?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"flex items-center",children:(0,t.jsx)(T.ActionButton,{label:n("repositoryNode.openInIde"),onClick:K.openInIde,loading:K.ideLoading,error:!!K.ideError,icon:x.Code2,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,t.jsx)(M.TooltipContent,{children:n("repositoryNode.openInIde")})]})}),(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"flex items-center",children:(0,t.jsx)(T.ActionButton,{label:n("repositoryNode.openInShell"),onClick:K.openInShell,loading:K.shellLoading,error:!!K.shellError,icon:f.Terminal,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,t.jsx)(M.TooltipContent,{children:n("repositoryNode.openInShell")})]})}),(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"flex items-center",children:(0,t.jsx)(T.ActionButton,{label:n("repositoryNode.openFolder"),onClick:K.openFolder,loading:K.folderLoading,error:!!K.folderError,icon:g.FolderOpen,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,t.jsx)(M.TooltipContent,{children:n("repositoryNode.openFolder")})]})}),(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(c.Button,{variant:"ghost",size:"icon-xs","aria-label":n("repositoryNode.chatWithAgent"),onClick:t=>{t.stopPropagation(),e.id&&p.push(`/repository/${e.id}/chat`)},className:"nodrag relative cursor-pointer text-violet-500 hover:text-violet-600 dark:text-violet-400 dark:hover:text-violet-300",children:[(0,t.jsx)(S.MessageSquare,{className:"h-3 w-3"}),(0,t.jsx)(L.ChatDotIndicator,{status:J})]})}),(0,t.jsx)(M.TooltipContent,{children:n("repositoryNode.chatWithAgent")})]})}),(0,t.jsx)(B.FeatureSessionsDropdown,{repositoryPath:e.repositoryPath,includeWorktrees:!0,onCreateFromSession:Q})]}):null,e.onAdd?(0,t.jsx)("div",{className:"ms-1.5"}):null,e.onAdd?(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("button",{"aria-label":n("repositoryNode.newFeature"),"data-testid":"repository-node-add-button",onClick:t=>{t.stopPropagation(),e.onAdd?.()},className:(0,d.cn)("flex h-6 shrink-0 cursor-pointer items-center gap-0.5 rounded bg-blue-500 px-1.5 text-[11px] font-bold text-white transition-colors hover:bg-blue-600 dark:bg-amber-500 dark:hover:bg-amber-400",e.pulseAdd&&"animate-pulse-cta"),children:[(0,t.jsx)(i.Plus,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"translate-y-px",children:n("repositoryNode.new")})]})}),(0,t.jsx)(M.TooltipContent,{side:"top",children:n("repositoryNode.newFeature")})]})}):null]})]}),e.branch?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{"data-testid":"repository-node-git-info",className:"text-muted-foreground border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3 text-xs",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate","data-testid":"repository-node-branch",children:[(0,t.jsx)(j.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.branch})]}),null!=e.behindCount&&e.behindCount>0?(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 whitespace-nowrap text-amber-500","data-testid":"repository-node-behind",children:[(0,t.jsx)(N.ArrowDown,{className:"h-3 w-3 shrink-0"}),n("repositoryNode.behind",{count:e.behindCount})]}):null]})}),e.commitMessage?(0,t.jsx)("div",{"data-testid":"repository-node-commit-info",className:"text-muted-foreground border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(w.GitCommitHorizontal,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 truncate","data-testid":"repository-node-commit-message",children:e.commitMessage}),e.committer?(0,t.jsxs)("span",{className:"text-muted-foreground/70 ms-auto flex shrink-0 items-center gap-1","data-testid":"repository-node-committer",children:[(0,t.jsx)(k.User,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{children:e.committer})]}):null]})}):null]}):"not-a-repo"===e.gitInfoStatus?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{"data-testid":"repository-node-not-repo",className:"text-muted-foreground border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(g.FolderOpen,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 truncate opacity-60",children:e.repositoryPath??"Unknown path"})]})}),(0,t.jsx)("div",{className:"text-muted-foreground border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs opacity-40",children:[(0,t.jsx)(j.GitBranch,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{children:n("repositoryNode.notAGitRepository")})]})})]}):"ready"!==e.gitInfoStatus?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{"data-testid":"repository-node-git-loading",className:"border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex h-4 items-center gap-2 text-xs",children:[(0,t.jsx)(j.GitBranch,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"bg-muted h-3 w-20 animate-pulse rounded"})]})}),(0,t.jsx)("div",{className:"border-border/50 border-t px-4 py-2",children:(0,t.jsxs)("div",{className:"flex h-4 items-center gap-2 text-xs",children:[(0,t.jsx)(w.GitCommitHorizontal,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"bg-muted h-3 w-36 animate-pulse rounded"})]})})]}):null,q.envDeploy&&e.repositoryPath?(0,t.jsx)("div",{"data-testid":"repository-node-dev-preview",className:"border-border/50 border-t px-4 py-2",onClick:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[X.deployError?(0,t.jsx)("span",{className:"truncate text-xs text-red-500",children:X.deployError}):Z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"me-0.5 inline-block h-2 w-2 shrink-0 rounded-full bg-green-500"}),X.url?(0,t.jsx)("a",{href:X.url,target:"_blank",rel:"noopener noreferrer",className:"truncate text-green-700 hover:underline dark:text-green-400",children:X.url}):(0,t.jsx)("span",{className:"text-muted-foreground",children:n("repositoryNode.starting")})]}):(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-baseline gap-2",children:[(0,t.jsx)("span",{children:n("repositoryNode.run")}),(0,t.jsx)("span",{className:"text-muted-foreground/50 text-[10px]",children:n("repositoryNode.startLocalEnvironment")})]}),(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:(0,d.cn)("ms-auto flex items-center",!Z&&!X.deployError&&"[&_button]:text-green-600 [&_button]:hover:text-green-700 dark:[&_button]:text-green-400 dark:[&_button]:hover:text-green-300"),children:(0,t.jsx)(T.ActionButton,{label:n(X.deployError?"repositoryNode.retry":Z?"repositoryNode.stopDevServer":"repositoryNode.startDevServer"),onClick:Z?X.stop:X.deploy,loading:X.deployLoading||X.stopLoading,error:!1,icon:X.deployError?C.RotateCcw:Z?v.Square:b.Play,iconOnly:!0,variant:"ghost",size:"icon-xs"})})}),(0,t.jsx)(M.TooltipContent,{children:n(Z?"repositoryNode.stopDevServer":"repositoryNode.startDevServer")})]})})]})}):null]}),e.onAdd||e.showHandles?(0,t.jsx)(r.Handle,{type:"source",position:W,isConnectable:!e.showHandles,className:"opacity-0!",style:{top:70}}):null]})}e.i(1650),e.i(845811),e.i(425235);var U=e.i(730702),W=e.i(542049),q=e.i(83428),H=e.i(317406),G=e.i(672971),_=e.i(942616);function V({data:e,selected:a}){let{i18n:o,t:n}=(0,l.useTranslation)("web"),u="rtl"===o.dir(),p=u?m.Position.Right:m.Position.Left,h=u?m.Position.Left:m.Position.Right,[x,f]=(0,s.useState)(!1),g=1+e.additionalPathCount,j=1===g?"1 repository":`${g} repositories`,w=(0,z.useTurnStatus)((0,G.featureIdForApplication)(e.id)),N=(0,R.useDeployAction)({targetId:e.id,targetType:"application",repositoryPath:e.repositoryPath}),k=N.url,S=(0,_.deriveAppLiveStatus)(e.status,w,!!k),I=(0,s.useCallback)(e=>{e.stopPropagation()},[]),D=(0,s.useCallback)(e=>{e.stopPropagation(),k&&window.open(k,"_blank","noopener,noreferrer")},[k]);return(0,t.jsxs)("div",{className:(0,d.cn)("group relative",e.onDelete&&e.id&&"ps-10"),style:{direction:u?"rtl":"ltr"},children:[(0,t.jsx)(r.Handle,{type:"target",position:p,isConnectable:!1,className:"opacity-0!",style:{top:70}}),e.onDelete&&e.id?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute -start-3 top-1/2 -translate-y-1/2 opacity-0 transition-opacity group-hover:opacity-100",onPointerDown:e=>e.stopPropagation(),children:(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{"aria-label":"Remove application","data-testid":"application-node-delete-button",onClick:e=>{e.stopPropagation(),f(!0)},className:"bg-card text-muted-foreground hover:border-destructive hover:text-destructive flex h-7 w-7 cursor-pointer items-center justify-center rounded-full border shadow-sm transition-colors",children:(0,t.jsx)(y.Trash2,{className:"h-3.5 w-3.5"})})}),(0,t.jsx)(M.TooltipContent,{children:"Remove application"})]})})}),(0,t.jsx)(A.Dialog,{open:x,onOpenChange:f,children:(0,t.jsxs)(A.DialogContent,{className:"max-w-xs",children:[(0,t.jsxs)(A.DialogHeader,{children:[(0,t.jsx)(A.DialogTitle,{children:"Remove application?"}),(0,t.jsxs)(A.DialogDescription,{children:["This will remove ",(0,t.jsx)("strong",{children:e.name})," from your workspace."]})]}),(0,t.jsxs)(A.DialogFooter,{className:"grid grid-cols-2 gap-2 sm:flex-none",children:[(0,t.jsx)(A.DialogClose,{asChild:!0,children:(0,t.jsx)(c.Button,{variant:"outline",children:"Cancel"})}),(0,t.jsx)(c.Button,{variant:"destructive",onClick:()=>{f(!1),e.onDelete?.(e.id)},children:"Remove"})]})]})})]}):null,(0,t.jsxs)("div",{role:"button",tabIndex:0,"data-testid":"application-node-card","data-app-name":e.name,onClick:t=>{t.stopPropagation(),e.onClick?.()},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t.stopPropagation(),e.onClick?.())},className:(0,d.cn)("nodrag bg-card flex w-[26rem] cursor-pointer flex-col overflow-hidden rounded-xl border shadow-sm transition-[border-color,box-shadow] duration-200 dark:bg-neutral-800/80",a&&"border-blue-400 dark:border-amber-500/60",!a&&S.borderClass),children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br from-indigo-500 to-violet-500",children:(0,t.jsx)(W.LayoutGrid,{className:"h-4 w-4 text-white"})}),(0,t.jsx)("span",{"data-testid":"application-node-name",className:"min-w-0 truncate text-sm font-medium",children:e.name}),(0,t.jsxs)("span",{className:"ms-auto flex shrink-0 items-center gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{"data-testid":"application-node-status-dot",className:(0,d.cn)("relative flex h-2 w-2 items-center justify-center rounded-full",S.dotClass),children:S.pulse?(0,t.jsx)("span",{className:(0,d.cn)("absolute inline-flex h-full w-full animate-ping rounded-full opacity-60",S.dotClass)}):null}),(0,t.jsx)("span",{"data-testid":"application-node-status-text",className:"text-muted-foreground text-xs",children:S.label})]}),e.onCreateSddFeature&&e.id?(0,t.jsx)("span",{onClick:e=>e.stopPropagation(),children:(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button","aria-label":n("applicationNode.newFeature"),"data-testid":"application-node-new-sdd-feature-button",onClick:t=>{t.stopPropagation(),e.onCreateSddFeature?.(e.id)},onPointerDown:e=>e.stopPropagation(),className:"nodrag flex h-6 shrink-0 cursor-pointer items-center gap-0.5 rounded bg-blue-500 px-1.5 text-[11px] font-bold text-white transition-colors hover:bg-blue-600 dark:bg-amber-500 dark:hover:bg-amber-400",children:[(0,t.jsx)(i.Plus,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"translate-y-px",children:n("repositoryNode.new")})]})}),(0,t.jsx)(M.TooltipContent,{side:"top",children:n("applicationNode.newFeature")})]})})}):null]})]}),k&&N.status===H.DeploymentState.Ready?(0,t.jsx)("div",{className:"px-4 pb-2",onClick:I,children:(0,t.jsxs)("div",{className:"bg-muted group/preview relative overflow-hidden rounded-lg",style:{height:180},children:[(0,t.jsx)("iframe",{src:k,title:`${e.name} live preview`,className:"pointer-events-none absolute top-0 left-0 origin-top-left border-0 bg-white",style:{width:"250%",height:"250%",transform:"scale(0.4)"},sandbox:"allow-same-origin allow-scripts",loading:"lazy"}),(0,t.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center gap-2 bg-neutral-900/75 opacity-0 transition-opacity duration-150 group-hover/preview:pointer-events-auto group-hover/preview:opacity-100 dark:bg-neutral-950/80",onPointerDown:I,onClick:I,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),N.stop()},disabled:N.stopLoading,"aria-label":"Stop dev server",title:"Stop dev server",className:"inline-flex h-9 cursor-pointer items-center gap-1.5 rounded-md border border-neutral-300 bg-white px-3 text-xs font-semibold text-neutral-900 shadow-md transition-colors hover:border-red-500 hover:bg-red-50 hover:text-red-600 dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-100 dark:hover:border-red-500 dark:hover:bg-red-950 dark:hover:text-red-400",children:[N.stopLoading?(0,t.jsx)(q.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(v.Square,{className:"h-3.5 w-3.5 fill-current"}),(0,t.jsx)("span",{children:"Stop"})]}),(0,t.jsxs)("button",{type:"button",onClick:D,"aria-label":`Open ${e.name} in a new tab`,title:k,className:"inline-flex h-9 cursor-pointer items-center gap-1.5 rounded-md border border-neutral-300 bg-white px-3 text-xs font-semibold text-neutral-900 shadow-md transition-colors hover:bg-neutral-50 dark:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-100 dark:hover:bg-neutral-800",children:[(0,t.jsx)(U.ExternalLink,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{children:"Open"})]})]})]})}):null,(0,t.jsxs)("div",{"data-testid":"application-node-dev-preview",className:"border-border/50 flex items-center gap-2 border-t px-4 py-2 text-xs",onClick:I,children:[N.deployError?(0,t.jsx)("span",{className:"truncate text-xs text-red-500",children:N.deployError}):N.status===H.DeploymentState.Booting||N.deployLoading?(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1.5",children:[(0,t.jsx)(q.Loader2,{className:"h-3 w-3 shrink-0 animate-spin text-amber-500"}),(0,t.jsx)("span",{children:"Starting…"})]}):N.stopLoading?(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1.5",children:[(0,t.jsx)(q.Loader2,{className:"h-3 w-3 shrink-0 animate-spin"}),(0,t.jsx)("span",{children:"Stopping…"})]}):k?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"me-0.5 inline-block h-2 w-2 shrink-0 rounded-full bg-green-500"}),(0,t.jsx)("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"truncate text-green-700 hover:underline dark:text-green-400",onClick:D,children:k})]}):(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-baseline gap-2",children:[(0,t.jsx)("span",{children:"Run"}),(0,t.jsx)("span",{className:"text-muted-foreground/50 text-[10px]",children:"start local environment"})]}),(0,t.jsxs)("span",{className:"ms-auto flex items-center gap-1",children:[(0,t.jsx)("span",{"data-testid":"application-node-repo-count",className:"text-muted-foreground/70",children:j}),(0,t.jsx)(M.TooltipProvider,{children:(0,t.jsxs)(M.Tooltip,{children:[(0,t.jsx)(M.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e=>{(e.stopPropagation(),N.deployError)?N.deploy():k?N.stop():N.deploy()},onPointerDown:I,disabled:N.deployLoading||N.stopLoading,"aria-label":N.deployError?"Retry":k?"Stop dev server":"Start dev server",className:(0,d.cn)("text-muted-foreground hover:bg-muted flex h-6 w-6 items-center justify-center rounded transition-colors disabled:cursor-not-allowed disabled:opacity-50",!k&&!N.deployError&&"text-green-600 hover:text-green-700 dark:text-green-400 dark:hover:text-green-300"),children:N.deployLoading||N.stopLoading?(0,t.jsx)(q.Loader2,{className:"h-3 w-3 animate-spin"}):N.deployError?(0,t.jsx)(C.RotateCcw,{className:"h-3 w-3"}):k?(0,t.jsx)(v.Square,{className:"h-3 w-3 fill-current"}):(0,t.jsx)(b.Play,{className:"h-3 w-3 fill-current"})})}),(0,t.jsx)(M.TooltipContent,{children:N.deployError?"Failed — click to retry":k?"Stop dev server":"Start dev server"})]})})]})]})]}),(0,t.jsx)(r.Handle,{type:"source",position:h,isConnectable:!1,className:"opacity-0!",style:{top:70}})]})}function Y(e){let[a]=(0,m.getBezierPath)({sourceX:e.sourceX,sourceY:e.sourceY,targetX:e.targetX,targetY:e.targetY,sourcePosition:e.sourcePosition,targetPosition:e.targetPosition});return(0,t.jsx)(r.BaseEdge,{id:e.id,path:a,style:{strokeDasharray:"5 5"}})}let J={x:30,y:30,zoom:.85};function K({nodes:e,edges:a,selectedFeatureId:o,selectedRepository:n,defaultViewport:m,onNodesChange:h,onAddFeature:x,onConnect:f,onNodeClick:g,onPaneClick:y,onCanvasDrag:b,onMoveEnd:v,toolbar:j,showToolbarOnEmpty:w=!0,emptyState:N}){let{t:k}=(0,l.useTranslation)("web"),C=(0,s.useMemo)(()=>({featureNode:p.FeatureNode,repositoryNode:O,applicationNode:V}),[]),S=(0,s.useMemo)(()=>({dependencyEdge:Y}),[]),I=(0,s.useMemo)(()=>{let t=null!=o,r=null!=n&&(null!=n.id||null!=n.path);return t||r?e.map(e=>{if(t&&"featureNode"===e.type&&e.data.featureId===o)return{...e,selected:!0};if(r&&"repositoryNode"===e.type){let t=e.data,r=null!=n.id&&(e.id===n.id||t.id===n.id),a=null!=n.path&&t.repositoryPath===n.path;if(r||a)return{...e,selected:!0}}return e}):e},[e,o,n]),D=0===e.length,[T,A]=(0,s.useState)(D),[P,F]=(0,s.useState)(!1),M=(0,s.useRef)(D);(0,s.useEffect)(()=>{if(M.current&&!D){F(!0);let e=setTimeout(()=>{A(!1),F(!1)},300);return M.current=D,()=>clearTimeout(e)}!M.current&&D&&A(!0),M.current=D},[D]);let R=D&&!N?(0,t.jsx)(u.EmptyState,{title:k("canvas.noFeatures"),description:k("canvas.noFeaturesDescription"),action:(0,t.jsxs)(c.Button,{onClick:x,children:[(0,t.jsx)(i.Plus,{className:"me-2 h-4 w-4"}),k("canvas.newFeature")]})}):null,E=N??R;return(0,t.jsxs)("div",{"data-testid":D?"features-canvas-empty":"features-canvas","data-no-drawer-close":!0,className:"dark:bg-background pointer-events-auto relative h-full w-full bg-[#f6f7f8]",children:[(0,t.jsxs)(r.ReactFlow,{nodes:I,edges:a,nodeTypes:C,edgeTypes:S,onConnect:f,onNodesChange:h,onNodeClick:g,onPaneClick:y,onMoveStart:b,onMoveEnd:v,defaultViewport:m??J,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,proOptions:{hideAttribution:!0},className:"[&_.react-flow__pane]:!cursor-default",children:[(0,t.jsx)(r.Background,{variant:r.BackgroundVariant.Dots,gap:24,size:1,color:"#b8bcc4",className:"dark:[&_circle]:!fill-white/[0.1]"}),j&&!D?(0,t.jsx)(r.Panel,{position:"top-right",className:"!me-3 !mt-3",children:j}):null]}),T&&E?(0,t.jsx)("div",{className:(0,d.cn)("pointer-events-none absolute inset-0 z-10 flex items-center justify-center transition-opacity duration-300",P?"opacity-0":"animate-in fade-in opacity-100 duration-200"),children:(0,t.jsx)("div",{className:"pointer-events-auto h-full w-full",children:E})}):null,j&&D&&w?(0,t.jsx)("div",{className:"pointer-events-auto absolute end-3 top-3 z-20",children:j}):null]})}var X=e.i(987889),Z=e.i(806288),Q=e.i(903645);let ee=(0,Q.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),et=(0,Q.default)("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),er=(0,Q.default)("maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]]);function ea({showArchived:e,onToggleArchived:a,onResetViewport:o,startSlot:n}){let{t:i}=(0,l.useTranslation)("web"),{zoomIn:d,zoomOut:c,fitView:u,setViewport:p}=(0,r.useReactFlow)(),m=(0,s.useCallback)(()=>{d({duration:200})},[d]),h=(0,s.useCallback)(()=>{c({duration:200})},[c]),x=(0,s.useCallback)(()=>{u({duration:400,padding:.3})},[u]),f=(0,s.useCallback)(()=>{o&&p(o(),{duration:400})},[o,p]);return(0,t.jsxs)("div",{className:"bg-background flex items-center gap-1 rounded-xl border px-2 py-1.5 shadow-md dark:bg-neutral-900",children:[n?(0,t.jsxs)(t.Fragment,{children:[n,(0,t.jsx)("div",{className:"bg-border mx-1 h-5 w-px"})]}):null,(0,t.jsx)(es,{onClick:a,title:i(e?"canvas.hideArchived":"canvas.showArchived"),active:e,label:i(e?"canvas.hideArchivedLabel":"canvas.showArchivedLabel"),children:e?(0,t.jsx)(X.Eye,{className:"h-4 w-4"}):(0,t.jsx)(Z.EyeOff,{className:"h-4 w-4"})}),(0,t.jsx)("div",{className:"bg-border mx-1 h-5 w-px"}),(0,t.jsx)(es,{onClick:h,title:i("canvas.zoomOut"),children:(0,t.jsx)(et,{className:"h-4 w-4"})}),(0,t.jsx)(es,{onClick:m,title:i("canvas.zoomIn"),children:(0,t.jsx)(ee,{className:"h-4 w-4"})}),(0,t.jsx)(es,{onClick:x,title:i("canvas.fitView"),children:(0,t.jsx)(er,{className:"h-4 w-4"})}),o?(0,t.jsx)(es,{onClick:f,title:i("canvas.resetView"),children:(0,t.jsx)(C.RotateCcw,{className:"h-4 w-4"})}):null]})}function es({children:e,onClick:r,title:a,label:s,active:o}){return(0,t.jsxs)("button",{type:"button",onClick:r,title:a,className:(0,d.cn)("inline-flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium transition-colors","hover:bg-accent hover:text-accent-foreground",o?"text-primary bg-primary/10":"text-muted-foreground"),children:[e,s?(0,t.jsx)("span",{children:s}):null]})}var eo=e.i(976874),en=e.i(723925),ei=e.i(998798),el=e.i(713005),ed=e.i(470646);let ec="shep:workspaces:v1",eu="default",ep={workspaces:[{id:eu,name:"Default",repoIds:[],featureIds:[]}],activeWorkspaceId:eu};function em({workspaces:e,activeWorkspace:r,onSelect:a,onRequestCreate:o,onRequestRename:n,onRequestDelete:l,onManage:c}){let[u,p]=(0,s.useState)(!1),m=r.id===eu;return(0,t.jsxs)(ed.DropdownMenu,{open:u,onOpenChange:p,children:[(0,t.jsx)(ed.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button","data-testid":"workspace-selector-trigger",className:(0,d.cn)("inline-flex items-center gap-1.5 rounded-lg px-2 py-1.5 text-xs font-medium transition-colors","hover:bg-accent hover:text-accent-foreground",m?"text-muted-foreground":"text-primary bg-primary/10"),title:"Workspace",children:[(0,t.jsx)(eo.Layers,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"max-w-[120px] truncate",children:r.name})]})}),(0,t.jsxs)(ed.DropdownMenuContent,{align:"start",className:"min-w-[220px]",children:[(0,t.jsx)(ed.DropdownMenuLabel,{children:"Workspaces"}),(0,t.jsx)(ed.DropdownMenuSeparator,{}),e.map(e=>{let s=e.id===r.id,o=e.id!==eu;return(0,t.jsxs)(ed.DropdownMenuItem,{onSelect:()=>a(e.id),className:"group/ws-row flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[s?(0,t.jsx)(en.Check,{className:"h-3.5 w-3.5"}):null,o?(0,t.jsx)("button",{type:"button","aria-label":`Delete workspace ${e.name}`,title:`Delete workspace ${e.name}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),p(!1),l(e.id)},className:"text-muted-foreground hover:bg-destructive/10 hover:text-destructive rounded p-0.5 opacity-0 transition-opacity group-hover/ws-row:opacity-100 focus-visible:opacity-100",children:(0,t.jsx)(y.Trash2,{className:"h-3.5 w-3.5"})}):null]})]},e.id)}),(0,t.jsx)(ed.DropdownMenuSeparator,{}),(0,t.jsxs)(ed.DropdownMenuItem,{onSelect:o,children:[(0,t.jsx)(i.Plus,{className:"mr-2 h-3.5 w-3.5"}),"New workspace…"]}),(0,t.jsxs)(ed.DropdownMenuItem,{onSelect:c,disabled:m,children:[(0,t.jsx)(el.SlidersHorizontal,{className:"mr-2 h-3.5 w-3.5"}),"Manage items…"]}),(0,t.jsxs)(ed.DropdownMenuItem,{onSelect:n,disabled:m,children:[(0,t.jsx)(ei.Pencil,{className:"mr-2 h-3.5 w-3.5"}),"Rename"]})]})]})}var eh=e.i(853756);function ex({open:e,onOpenChange:r,workspace:a,allNodes:o,onSave:n}){let[i,l]=(0,s.useState)(new Set),[d,u]=(0,s.useState)(new Set);(0,s.useEffect)(()=>{e&&(l(new Set(a.repoIds)),u(new Set(a.featureIds)))},[e,a]);let p=(0,s.useMemo)(()=>{let e=[],t=new Map;for(let r of o){if("repositoryNode"!==r.type)continue;let a=r.data,s=a.repositoryPath??"",o={nodeId:r.id,name:a.name??s.split("/").filter(Boolean).pop()??s,features:[]};e.push(o),t.set(s,o)}for(let e of o){if("featureNode"!==e.type)continue;let r=e.data,a=t.get(r.repositoryPath??"");a&&a.features.push({nodeId:e.id,name:r.name})}return e},[o]);return(0,t.jsx)(A.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(A.DialogContent,{className:"max-h-[80vh] max-w-lg overflow-hidden",children:[(0,t.jsxs)(A.DialogHeader,{children:[(0,t.jsxs)(A.DialogTitle,{children:["Manage workspace: ",a.name]}),(0,t.jsx)(A.DialogDescription,{children:"Select the repositories and features that should appear on this workspace's canvas."})]}),(0,t.jsx)("div",{className:"-mx-6 max-h-[50vh] overflow-y-auto px-6",children:0===p.length?(0,t.jsx)("p",{className:"text-muted-foreground py-8 text-center text-sm",children:"No repositories on the canvas yet."}):(0,t.jsx)("ul",{className:"space-y-3 py-2",children:p.map(e=>(0,t.jsxs)("li",{children:[(0,t.jsxs)("label",{className:"hover:bg-accent/30 flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5",children:[(0,t.jsx)(P.Checkbox,{checked:i.has(e.nodeId),onCheckedChange:()=>{var t;return t=e.nodeId,void l(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})}}),(0,t.jsx)(j.GitBranch,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:e.name})]}),e.features.length>0?(0,t.jsx)("ul",{className:"mt-1 ml-7 space-y-0.5",children:e.features.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("label",{className:"hover:bg-accent/30 flex cursor-pointer items-center gap-2 rounded-md px-2 py-1",children:[(0,t.jsx)(P.Checkbox,{checked:d.has(e.nodeId),onCheckedChange:()=>{var t;return t=e.nodeId,void u(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})}}),(0,t.jsx)(eh.Sparkles,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.name})]})},e.nodeId))}):null]},e.nodeId))})}),(0,t.jsxs)(A.DialogFooter,{children:[(0,t.jsx)(c.Button,{variant:"ghost",onClick:()=>r(!1),children:"Cancel"}),(0,t.jsx)(c.Button,{onClick:()=>{n({repoIds:Array.from(i),featureIds:Array.from(d)}),r(!1)},children:"Save"})]})]})})}var ef=e.i(698127);function eg({open:e,onOpenChange:r,title:a,description:o,initialValue:n="",confirmLabel:i,onConfirm:l}){let[d,u]=(0,s.useState)(n);return(0,s.useEffect)(()=>{e&&u(n)},[e,n]),(0,t.jsx)(A.Dialog,{open:e,onOpenChange:r,children:(0,t.jsx)(A.DialogContent,{className:"max-w-sm",children:(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=d.trim();t&&(l(t),r(!1))},children:[(0,t.jsxs)(A.DialogHeader,{children:[(0,t.jsx)(A.DialogTitle,{children:a}),o?(0,t.jsx)(A.DialogDescription,{children:o}):null]}),(0,t.jsx)("div",{className:"py-4",children:(0,t.jsx)(ef.Input,{autoFocus:!0,value:d,onChange:e=>u(e.target.value),placeholder:"Workspace name","data-testid":"workspace-name-input"})}),(0,t.jsxs)(A.DialogFooter,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"ghost",onClick:()=>r(!1),children:"Cancel"}),(0,t.jsx)(c.Button,{type:"submit",disabled:!d.trim(),children:i})]})]})})})}var ey=e.i(271326);e.i(744263);var eb=e.i(371127),ev=e.i(805147),ej=e.i(808361),ew=e.i(930153);let eN="shep-canvas-viewport",ek={x:30,y:30,zoom:.85};var eC=e.i(957638),eS=e.i(655827),eI=e.i(440106),eD=e.i(433548),eT=e.i(435e3),eA=e.i(579687),eP=e.i(99105),eF=e.i(478521);e.i(13322);var eM=e.i(961201),eR=e.i(508893);let eE=(0,eR.createServerReference)("000dc696afafd019691d30ebc74c3bb2bf6be80fc9",eR.callServer,void 0,eR.findSourceMapURL,"isAgentSetupComplete"),e$=(0,eR.createServerReference)("00043b20dfa79e7ce6d504a372669a2b7396e4f421",eR.callServer,void 0,eR.findSourceMapURL,"checkAgentAuth"),eL=(0,eR.createServerReference)("00fd3bb249b5c2f4771f7eac594bf5656eaf959cdb",eR.callServer,void 0,eR.findSourceMapURL,"checkToolStatus");var ez=e.i(611345),eB=e.i(187493),eO=e.i(482988),eU=e.i(286782),eW=e.i(229847);let eq=["select-agent","select-model"];function eH({onComplete:e,className:r}){let{t:a}=(0,l.useTranslation)("web"),[o,n]=(0,s.useState)([]),[i,c]=(0,s.useState)(!0),[u,p]=(0,s.useState)("select-agent"),[m,h]=(0,s.useState)(null),[x,f]=(0,s.useState)(!1),[g,y]=(0,s.useState)(!1),[b,v]=(0,s.useState)(!0),j=(0,s.useRef)(void 0);(0,s.useEffect)(()=>{(0,eB.getAllAgentModels)().then(n).finally(()=>c(!1))},[]);let w=m?o.find(e=>e.agentType===m):null,N=(0,s.useCallback)((e,t)=>{y(!0),v(!1),j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{t?.(),p(e),requestAnimationFrame(()=>{v(!0),y(!1)})},150)},[]);(0,s.useEffect)(()=>()=>{j.current&&clearTimeout(j.current)},[]);let k=(0,s.useCallback)(async(t,r)=>{f(!0);try{await (0,eO.updateAgentAndModel)(t,r),v(!1),j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{e()},200)}catch{f(!1)}},[e]),C=(0,s.useCallback)(e=>{let t=o.find(t=>t.agentType===e);t&&t.models.length>0?N("select-model",()=>{h(e)}):k(e,null)},[o,N,k]),S=(0,s.useCallback)(e=>{m&&k(m,e)},[m,k]),I=(0,s.useCallback)(()=>{"select-model"===u&&N("select-agent",()=>{h(null)})},[u,N]);if(i)return(0,t.jsxs)("div",{"data-testid":"welcome-agent-setup",className:(0,d.cn)("flex flex-col items-center justify-center gap-4",r),children:[(0,t.jsx)(q.Loader2,{className:"text-muted-foreground h-5 w-5 animate-spin"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:a("welcome.loadingAgents")})]});let D=eq.indexOf(u),T=a("select-agent"===u?"welcome.chooseAgent":"welcome.pickModel"),A="select-agent"===u?a("welcome.selectAgentSubtitle"):w?a("welcome.chooseModelSubtitle",{label:w.label}):"";return(0,t.jsxs)("div",{"data-testid":"welcome-agent-setup",className:(0,d.cn)("flex w-full flex-col items-center",r),children:[(0,t.jsx)("div",{className:"mb-8 flex w-full max-w-xs items-center gap-1.5",children:eq.map((e,r)=>(0,t.jsx)("div",{className:(0,d.cn)("h-[3px] flex-1 rounded-full transition-colors duration-300",r<=D?"bg-foreground/60":"bg-muted")},e))}),(0,t.jsxs)("div",{className:(0,d.cn)("flex w-full flex-col items-center transition-opacity duration-200",b&&!g?"opacity-100":"opacity-0"),children:[(0,t.jsx)("h1",{className:"text-foreground/90 text-center text-5xl font-extralight tracking-tight",children:T}),(0,t.jsx)("p",{className:"text-muted-foreground mt-3 text-center text-lg leading-relaxed font-light",children:A}),(0,t.jsxs)("div",{className:"mt-8 flex w-full flex-col items-center",children:["select-agent"===u&&(0,t.jsx)("div",{"data-testid":"agent-list",className:"grid w-full max-w-lg gap-3",style:{gridTemplateColumns:`repeat(${Math.min(o.length,4)}, minmax(0, 1fr))`},children:o.map(e=>{let r=(0,eU.getAgentTypeIcon)(e.agentType);return(0,t.jsxs)("button",{type:"button",disabled:x,"data-testid":`agent-option-${e.agentType}`,className:"border-border hover:bg-accent hover:border-foreground/20 flex cursor-pointer flex-col items-center gap-3 rounded-2xl border px-4 py-5 transition-all duration-150 active:scale-[0.97] disabled:opacity-50",onClick:()=>C(e.agentType),children:[(0,t.jsx)(r,{className:"text-foreground/70 h-7 w-7"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label})]},e.agentType)})}),"select-model"===u&&w?(0,t.jsxs)("div",{"data-testid":"model-list",className:"flex w-full max-w-lg flex-col items-center gap-4",children:[(0,t.jsxs)("button",{type:"button",disabled:x,className:"text-muted-foreground hover:text-foreground flex cursor-pointer items-center gap-1.5 self-start text-sm transition-colors",onClick:I,children:[(0,t.jsx)(ez.ChevronLeft,{className:"h-4 w-4"}),a("welcome.back")]}),(0,t.jsx)("div",{className:"grid w-full gap-3",style:{gridTemplateColumns:`repeat(${Math.min(w.models.length,3)}, minmax(0, 1fr))`},children:w.models.map(e=>{let r=(0,eW.getModelMeta)(e.id);return(0,t.jsxs)("button",{type:"button",disabled:x,"data-testid":`model-option-${e.id}`,className:"border-border hover:bg-accent hover:border-foreground/20 flex cursor-pointer flex-col items-center gap-2 rounded-2xl border px-4 py-5 text-center transition-all duration-150 active:scale-[0.97] disabled:opacity-50",onClick:()=>S(e.id),children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:r.displayName||e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs leading-tight",children:r.description||e.description})]},e.id)})})]}):null]})]})]})}var eG=e.i(327810);let e_=["cd ~/my-repo",'shep feat new "sleek dashboard"'];function eV({onRepositorySelect:e,className:r}){let{t:a}=(0,l.useTranslation)("web"),[o,i]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),[x,y]=(0,s.useState)(null),[b,v]=(0,s.useState)(null),[j,w]=(0,s.useState)(!1),[N,k]=(0,s.useState)(null),[C,S]=(0,s.useState)(!1),{reactFileManager:I}=(0,E.useFeatureFlags)();async function D(){if(!c){if(I)return void m(!0);u(!0);try{let t=await (0,eF.pickFolder)();t&&e?.(t)}catch{m(!0)}finally{u(!1)}}}(0,s.useEffect)(()=>{eE().then(e=>y(e)).catch(()=>y(!1))},[]),(0,s.useEffect)(()=>{x&&(e$().then(v).catch(()=>v({agentType:"unknown",installed:!1,authenticated:!1,label:"Agent",binaryName:null,installCommand:null,authCommand:null})),eL().then(k).catch(()=>k({git:{installed:!1,version:null,installCommand:null,installUrl:null},gh:{installed:!1,version:null,installCommand:null,installUrl:null}})))},[x]);let T=(0,s.useCallback)(async()=>{await navigator.clipboard.writeText(e_.join("\n")),i(!0),setTimeout(()=>i(!1),2e3)},[]),A=(0,s.useCallback)(()=>{y(!0)},[]),P=(0,s.useCallback)(()=>{v(null),e$().then(v)},[]);return null===x?null:(0,t.jsxs)("div",{"data-testid":"control-center-onboarding",className:(0,d.cn)("relative flex h-full w-full flex-col items-center justify-center px-8",r),children:[x?(0,t.jsxs)("div",{className:"animate-in fade-in flex w-full max-w-md flex-col items-center duration-300",children:[(0,t.jsx)("h1",{className:"text-foreground/90 text-center text-5xl font-extralight tracking-tight",children:a("emptyState.addProject")}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-3 text-center text-lg leading-relaxed font-light",children:[a("emptyState.addProjectDescription"),(0,t.jsx)("br",{}),a("emptyState.addProjectDescriptionLine2")]}),(0,t.jsxs)("div",{className:"mt-8 flex w-full flex-col gap-3",children:[(0,t.jsx)(eY,{status:b,onRetry:P}),(0,t.jsx)(eJ,{label:a("emptyState.git"),status:N?.git??null,missingHint:a("emptyState.gitRequired")}),(0,t.jsx)(eJ,{label:a("emptyState.githubCli"),status:N?.gh??null,missingHint:a("emptyState.githubCliRequired")})]}),(0,t.jsxs)("button",{type:"button","data-testid":"empty-state-add-repository",onClick:D,disabled:c,className:"bg-foreground text-background hover:bg-foreground/90 mt-10 flex w-full cursor-pointer items-center justify-center gap-2.5 rounded-xl px-6 py-4 text-base font-medium shadow-lg transition-all duration-200 hover:shadow-xl active:scale-[0.98] disabled:cursor-wait disabled:opacity-50",children:[c?(0,t.jsx)(q.Loader2,{className:"h-5 w-5 animate-spin"}):(0,t.jsx)(g.FolderOpen,{className:"h-5 w-5"}),a(c?"emptyState.opening":"emptyState.chooseFolder")]}),(0,t.jsxs)("button",{type:"button","data-testid":"empty-state-new-project",onClick:()=>S(!0),disabled:c,className:"border-foreground/15 text-foreground/80 hover:bg-foreground/5 hover:border-foreground/25 mt-3 flex w-full cursor-pointer items-center justify-center gap-2.5 rounded-xl border px-6 py-3.5 text-sm font-medium transition-all duration-200 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(n.FolderPlus,{className:"h-4 w-4"}),"New Project"]}),(0,t.jsxs)("button",{type:"button","data-testid":"empty-state-import-github",onClick:()=>window.dispatchEvent(new CustomEvent("shep:open-github-import")),disabled:c,className:"border-foreground/15 text-foreground/80 hover:bg-foreground/5 hover:border-foreground/25 mt-3 flex w-full cursor-pointer items-center justify-center gap-2.5 rounded-xl border px-6 py-3.5 text-sm font-medium transition-all duration-200 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(h.Github,{className:"h-4 w-4"}),"Import from GitHub"]}),(0,t.jsx)("p",{className:"text-muted-foreground/60 mt-3 text-center text-sm",children:a("emptyState.folderHint")})]}):(0,t.jsx)(eH,{onComplete:A}),x?(0,t.jsxs)("div",{className:"absolute bottom-8 flex flex-col items-center",style:{animationDelay:"400ms",animationDuration:"600ms",animationFillMode:"both"},children:[(0,t.jsxs)("button",{type:"button",onClick:()=>w(!j),className:"text-muted-foreground hover:text-foreground flex cursor-pointer items-center gap-1.5 transition-colors duration-200",children:[(0,t.jsx)(f.Terminal,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"text-sm",children:a("emptyState.orUseCli")}),(0,t.jsx)(eP.ChevronDown,{className:(0,d.cn)("h-3.5 w-3.5 transition-transform duration-200",j?"":"rotate-180")})]}),j?(0,t.jsx)("div",{className:"animate-in fade-in slide-in-from-top-1 mt-3 w-80 duration-200",children:(0,t.jsxs)("div",{"data-testid":"cli-code-block",className:"relative rounded-xl bg-zinc-900 px-5 py-4 font-mono text-[13px] leading-relaxed text-zinc-400",children:[(0,t.jsx)("button",{type:"button","data-testid":"cli-code-block-copy",onClick:T,className:"absolute top-3 right-3 cursor-pointer rounded-md p-1.5 text-zinc-600 transition-colors hover:bg-zinc-800 hover:text-zinc-300","aria-label":a("emptyState.copyCommands"),children:o?(0,t.jsx)(en.Check,{className:"h-3.5 w-3.5 text-emerald-400"}):(0,t.jsx)(eD.Copy,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("div",{className:"space-y-1",children:e_.map(e=>(0,t.jsxs)("div",{className:"whitespace-nowrap",children:[(0,t.jsx)("span",{className:"text-zinc-600 select-none",children:"$ "}),(0,t.jsx)("span",{className:"text-zinc-300",children:e})]},e))})]})}):null]}):null,(0,t.jsx)(eM.ReactFileManagerDialog,{open:p,onOpenChange:e=>{e||m(!1)},onSelect:function(t){t&&e?.(t),m(!1)}}),(0,t.jsx)(eG.NewProjectDialog,{open:C,onOpenChange:S,onCreated:t=>e?.(t)})]})}function eY({status:e,onRetry:r}){let{t:a}=(0,l.useTranslation)("web");return e?e.installed&&e.authenticated?(0,t.jsx)(eK,{icon:(0,t.jsx)(eT.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}),children:(0,t.jsx)("span",{className:"text-sm text-emerald-600 dark:text-emerald-400",children:a("emptyState.ready",{label:e.label})})}):e.installed?(0,t.jsxs)(eK,{icon:(0,t.jsx)(eA.AlertCircle,{className:"h-4 w-4 text-amber-500"}),children:[(0,t.jsx)("span",{className:"text-sm font-medium text-amber-600 dark:text-amber-400",children:a("emptyState.needsAuth",{label:e.label})}),e.authCommand?(0,t.jsx)(eX,{command:e.authCommand}):null,(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[e.binaryName?(0,t.jsxs)("button",{type:"button","data-testid":"auth-banner-open-terminal",onClick:async()=>{try{let t="claude-code"===e.agentType?"claude-code":e.agentType;await fetch(`/api/tools/${t}/launch`,{method:"POST"})}catch{}},className:"flex items-center gap-1 text-xs font-medium text-amber-600 underline underline-offset-2 hover:text-amber-800 dark:text-amber-400",children:[(0,t.jsx)(f.Terminal,{className:"h-3 w-3"}),a("emptyState.open",{label:e.label})]}):null,(0,t.jsx)("button",{type:"button",onClick:r,className:"text-xs text-amber-600 underline underline-offset-2 hover:text-amber-800 dark:text-amber-400",children:a("emptyState.reCheck")})]})]}):(0,t.jsxs)(eK,{icon:(0,t.jsx)(eA.AlertCircle,{className:"h-4 w-4 text-amber-500"}),children:[(0,t.jsx)("span",{className:"text-sm font-medium text-amber-600 dark:text-amber-400",children:a("emptyState.notInstalled",{label:e.label})}),e.installCommand?(0,t.jsx)(eX,{command:e.installCommand}):null,(0,t.jsx)("button",{type:"button",onClick:r,className:"text-xs text-amber-600 underline underline-offset-2 hover:text-amber-800 dark:text-amber-400",children:a("emptyState.reCheck")})]}):(0,t.jsx)(eK,{icon:(0,t.jsx)(q.Loader2,{className:"text-muted-foreground/50 h-4 w-4 animate-spin"}),children:(0,t.jsx)("span",{className:"text-muted-foreground/50 text-sm",children:a("emptyState.checkingSetup")})})}function eJ({label:e,status:r,missingHint:a}){let{t:s}=(0,l.useTranslation)("web");return r?r.installed?(0,t.jsx)(eK,{icon:(0,t.jsx)(eT.CheckCircle2,{className:"h-4 w-4 text-emerald-500"}),children:(0,t.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-sm text-emerald-600 dark:text-emerald-400",children:s("emptyState.ready",{label:e})}),r.version?(0,t.jsxs)("span",{className:"text-muted-foreground/40 text-xs",children:["v",r.version]}):null]})}):(0,t.jsxs)(eK,{icon:(0,t.jsx)(eA.AlertCircle,{className:"h-4 w-4 text-amber-500"}),children:[(0,t.jsx)("span",{className:"text-sm font-medium text-amber-600 dark:text-amber-400",children:s("emptyState.notFound",{label:e})}),(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:a}),r.installCommand?(0,t.jsx)(eX,{command:r.installCommand}):null,r.installUrl?(0,t.jsxs)("a",{href:r.installUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-xs text-amber-600 underline underline-offset-2 hover:text-amber-800 dark:text-amber-400",children:[s("emptyState.docs")," ",(0,t.jsx)(U.ExternalLink,{className:"h-3 w-3"})]}):null]}):(0,t.jsx)(eK,{icon:(0,t.jsx)(q.Loader2,{className:"text-muted-foreground/50 h-4 w-4 animate-spin"}),children:(0,t.jsx)("span",{className:"text-muted-foreground/50 text-sm",children:s("emptyState.checking",{label:e})})})}function eK({icon:e,children:r}){return(0,t.jsxs)("div",{className:"animate-in fade-in flex items-start gap-2.5",children:[(0,t.jsx)("div",{className:"mt-0.5 shrink-0",children:e}),(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:r})]})}function eX({command:e}){let[r,a]=(0,s.useState)(!1);return(0,t.jsxs)("button",{type:"button",onClick:async()=>{await navigator.clipboard.writeText(e),a(!0),setTimeout(()=>a(!1),2e3)},className:"group/cmd flex cursor-pointer items-center justify-between gap-2 rounded-md bg-zinc-100 py-1 ps-2.5 pe-2 text-start transition-colors hover:bg-zinc-200 dark:bg-zinc-800 dark:hover:bg-zinc-700",children:[(0,t.jsx)("code",{className:"min-w-0 truncate text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-300",children:e}),r?(0,t.jsx)(en.Check,{className:"h-3 w-3 shrink-0 text-emerald-500"}):(0,t.jsx)(eD.Copy,{className:"h-3 w-3 shrink-0 text-zinc-400 opacity-0 transition-opacity group-hover/cmd:opacity-100"})]})}var eZ=e.i(860253),eQ=e.i(604340),e0=e.i(598701),e1=e.i(383379),e5=e.i(256460);let e3="shep:collaboration-onboarding-dismissed";function e2({apps:e=[],repos:r=[],features:a=[],className:o}){let[n,i]=(0,s.useState)(!1);return((0,s.useEffect)(()=>{try{localStorage.getItem(e3)||i(!0)}catch{}},[]),n)?(0,t.jsxs)("div",{className:(0,d.cn)("border-border/60 bg-card relative flex flex-col gap-4 rounded-xl border p-5 shadow-sm",o),role:"region","aria-label":"Agent collaboration onboarding","data-testid":"collaboration-onboarding",children:[(0,t.jsx)("button",{type:"button","aria-label":"Dismiss",onClick:function(){try{localStorage.setItem(e3,"1")}catch{}i(!1)},className:"text-muted-foreground hover:text-foreground absolute top-3 right-3 rounded-md p-1 transition-colors",children:(0,t.jsx)(eZ.X,{className:"size-4"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] font-semibold tracking-widest text-indigo-500 uppercase",children:"New"}),(0,t.jsx)("h2",{className:"mt-0.5 text-base font-semibold",children:"Agent Collaboration & Supervision"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:"Your agents can now ask questions, talk to each other, and be guided by a supervisor you configure."})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,t.jsx)(e4,{apps:e,repos:r,features:a}),(0,t.jsx)(e9,{icon:eQ.MessageCircleQuestion,title:"Agent questions inbox",description:"A single place for all questions raised by agents during interactive and background runs.",href:"/agent-questions",cta:"View inbox"})]})]}):null}function e4({apps:e,repos:r,features:a}){let[o,n]=(0,s.useState)(!1),l=(0,s.useMemo)(()=>[...e.map(e=>({...e,kind:"app"})),...r.map(e=>({...e,kind:"repo"})),...a.map(e=>({...e,kind:"feature"}))],[e,r,a]);if(0===l.length)return(0,t.jsxs)("div",{className:"bg-muted/40 border-border/40 flex flex-col gap-2 rounded-lg border p-4",children:[(0,t.jsx)(e6,{}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:"Supervisors attach to an application, repository, or feature. Add a repository or create an application to configure your first one."}),(0,t.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("shep:open-create-application")),className:"text-primary mt-auto inline-flex cursor-pointer items-center gap-1 text-xs font-medium hover:underline",children:[(0,t.jsx)(i.Plus,{className:"size-3"}),"Create an application"]})]});if(1===l.length){var d;let e=l[0];return(0,t.jsx)(e9,{icon:e0.ShieldCheck,title:"Supervisor agent",description:`Delegate approvals and policy decisions for ${"app"===(d=e.kind)?"application":"repo"===d?"repository":"feature"} "${e.name}".`,href:e8(e),cta:"Configure supervisor"})}let c=l.slice(0,3),u=l.length-c.length;return(0,t.jsxs)("div",{className:"bg-muted/40 border-border/40 flex flex-col gap-2 rounded-lg border p-4",children:[(0,t.jsx)(e6,{}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:"Pick an application, repository, or feature to configure its supervisor."}),o?(0,t.jsx)("div",{className:"mt-1 flex max-h-72 flex-col gap-1 overflow-y-auto",children:l.map(e=>(0,t.jsxs)(e5.default,{href:e8(e),className:"border-border/50 hover:bg-background flex items-center justify-between rounded-md border px-3 py-2 text-xs transition-colors",children:[(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(e7,{kind:e.kind,className:"text-muted-foreground size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate font-medium",children:e.name})]}),(0,t.jsx)(e1.ArrowRight,{className:"text-muted-foreground ml-2 size-3 shrink-0"})]},`${e.kind}-${e.id}`))}):(0,t.jsxs)("div",{className:"mt-1 flex flex-wrap gap-1.5",children:[c.map(e=>(0,t.jsxs)(e5.default,{href:e8(e),className:"border-border/50 bg-background hover:border-primary/40 hover:text-primary flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs transition-colors",children:[(0,t.jsx)(e7,{kind:e.kind,className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"max-w-[10rem] truncate",children:e.name}),(0,t.jsx)(e1.ArrowRight,{className:"size-2.5"})]},`${e.kind}-${e.id}`)),u>0?(0,t.jsxs)("button",{type:"button",onClick:()=>n(!0),className:"text-muted-foreground hover:text-foreground border-border/50 rounded-md border px-2.5 py-1 text-xs transition-colors",children:["+",u," more"]}):null]})]})}function e6(){return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"bg-primary/10 text-primary flex h-7 w-7 shrink-0 items-center justify-center rounded-md",children:(0,t.jsx)(e0.ShieldCheck,{className:"size-3.5"})}),(0,t.jsx)("span",{className:"text-sm font-medium",children:"Supervisor agent"})]})}function e7({kind:e,className:r}){let a="app"===e?eo.Layers:"repo"===e?j.GitBranch:eh.Sparkles;return(0,t.jsx)(a,{className:r,"aria-hidden":!0})}function e8(e){switch(e.kind){case"app":return`/application/${e.id}/supervisor`;case"repo":return`/supervisor/repo/${e.id}`;case"feature":return`/supervisor/feature/${e.id}`}}function e9({icon:e,title:r,description:a,href:s,cta:o}){return(0,t.jsxs)("div",{className:"bg-muted/40 border-border/40 flex flex-col gap-2 rounded-lg border p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"bg-primary/10 text-primary flex h-7 w-7 shrink-0 items-center justify-center rounded-md",children:(0,t.jsx)(e,{className:"size-3.5"})}),(0,t.jsx)("span",{className:"text-sm font-medium",children:r})]}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:a}),(0,t.jsxs)(e5.default,{href:s,className:"text-primary mt-auto inline-flex items-center gap-1 text-xs font-medium hover:underline",children:[o,(0,t.jsx)(e1.ArrowRight,{className:"size-3"})]})]})}var te=e.i(917840);let tt={maxZoom:1,padding:.5,duration:500};var tr=e.i(941698);let ta={maxZoom:1,padding:.5,duration:500};function ts({initialNodes:e,initialEdges:a}){let d,u,p,m,x,f,y=(0,o.useRouter)(),b=(0,o.usePathname)(),v=(d=(0,o.usePathname)().match(/^\/feature\/([^/]+)/),d?.[1]??null),w=(u=(0,o.usePathname)(),p=(0,o.useSearchParams)(),m=u.match(/^\/repository\/([^/]+)/),{id:m?.[1]??null,path:u.startsWith("/create")?p.get(D.URL_PARAMS.repo):null}),N=(0,ej.useSoundAction)("click"),{guardedNavigate:k}=(0,ew.useDrawerCloseGuard)(),{fitView:C}=(0,r.useReactFlow)(),S=(0,s.useRef)(null),{defaultViewport:I,onMoveEnd:T,resetViewport:A}=(x=(0,s.useRef)(function(){try{let e=localStorage.getItem(eN);if(null==e)return ek;let t=JSON.parse(e);return!(null==t||"object"!=typeof t||Array.isArray(t))&&"number"==typeof t.x&&"number"==typeof t.y&&"number"==typeof t.zoom&&Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(t.zoom)&&t.zoom>0?t:ek}catch{return ek}}()).current,f=(0,s.useRef)(null),(0,s.useEffect)(()=>()=>{null!=f.current&&clearTimeout(f.current)},[]),{defaultViewport:x,onMoveEnd:(0,s.useCallback)(e=>{null!=f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{try{localStorage.setItem(eN,JSON.stringify(e))}catch{}},500)},[]),resetViewport:(0,s.useCallback)(()=>{try{localStorage.removeItem(eN)}catch{}return ek},[])}),{nodes:P,edges:F,onNodesChange:M,handleConnect:R,handleAddRepository:$,handleArchiveFeature:L,handleDeleteFeature:z,handleRetryFeature:B,handleStartFeature:O,handleStopFeature:U,handleUnarchiveFeature:q,handleDeleteRepository:G,handleDeleteApplication:_,createFeatureNode:V,showArchived:Y,setShowArchived:J,setCallbacks:X}=(0,te.useControlCenterState)(e,a),{workspaces:Z,activeWorkspace:Q,isDefaultActive:ee,setActiveWorkspace:et,createWorkspace:er,renameWorkspace:es,deleteWorkspace:en,setWorkspaceMembers:ei,addToActiveWorkspace:el}=function(){let[e,t]=(0,s.useState)(ep);(0,s.useEffect)(()=>{t(function(){try{let e=window.localStorage.getItem(ec);if(!e)return ep;let t=JSON.parse(e);if(!t.workspaces||!Array.isArray(t.workspaces))return ep;return{workspaces:t.workspaces.some(e=>e.id===eu)?t.workspaces:[ep.workspaces[0],...t.workspaces],activeWorkspaceId:t.activeWorkspaceId??eu}}catch{return ep}}())},[]),(0,s.useEffect)(()=>{try{window.localStorage.setItem(ec,JSON.stringify(e))}catch{}},[e]);let r=(0,s.useCallback)(e=>{t(t=>t.workspaces.some(t=>t.id===e)?{...t,activeWorkspaceId:e}:t)},[]),a=(0,s.useCallback)(e=>{let r=e.trim()||"Untitled workspace",a={id:`ws-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,name:r,repoIds:[],featureIds:[]};return t(e=>({workspaces:[...e.workspaces,a],activeWorkspaceId:a.id})),a},[]),o=(0,s.useCallback)((e,r)=>{if(e===eu)return;let a=r.trim();a&&t(t=>({...t,workspaces:t.workspaces.map(t=>t.id===e?{...t,name:a}:t)}))},[]),n=(0,s.useCallback)(e=>{e!==eu&&t(t=>({workspaces:t.workspaces.filter(t=>t.id!==e),activeWorkspaceId:t.activeWorkspaceId===e?eu:t.activeWorkspaceId}))},[]),i=(0,s.useCallback)((e,r)=>{e!==eu&&t(t=>({...t,workspaces:t.workspaces.map(t=>t.id===e?{...t,repoIds:[...r.repoIds],featureIds:[...r.featureIds]}:t)}))},[]),l=(0,s.useCallback)((e,r)=>{t(t=>t.activeWorkspaceId===eu?t:{...t,workspaces:t.workspaces.map(a=>{if(a.id!==t.activeWorkspaceId)return a;let s="repo"===e?a.repoIds:a.featureIds,o=s.includes(r)?s.filter(e=>e!==r):[...s,r];return"repo"===e?{...a,repoIds:o}:{...a,featureIds:o}})})},[]),d=(0,s.useCallback)(e=>l("repo",e),[l]),c=(0,s.useCallback)(e=>l("feature",e),[l]),u=(0,s.useCallback)(e=>{let r=e.repoIds??[],a=e.featureIds??[];(0!==r.length||0!==a.length)&&t(e=>e.activeWorkspaceId===eu?e:{...e,workspaces:e.workspaces.map(t=>{if(t.id!==e.activeWorkspaceId)return t;let s=new Set(t.repoIds);for(let e of r)s.add(e);let o=new Set(t.featureIds);for(let e of a)o.add(e);return s.size===t.repoIds.length&&o.size===t.featureIds.length?t:{...t,repoIds:Array.from(s),featureIds:Array.from(o)}})})},[]),p=e.workspaces.find(t=>t.id===e.activeWorkspaceId)??e.workspaces[0];return{workspaces:e.workspaces,activeWorkspace:p,activeWorkspaceId:e.activeWorkspaceId,isDefaultActive:e.activeWorkspaceId===eu,setActiveWorkspace:r,createWorkspace:a,renameWorkspace:o,deleteWorkspace:n,setWorkspaceMembers:i,toggleRepoInActive:d,toggleFeatureInActive:c,addToActiveWorkspace:u}}(),ed=(0,s.useRef)(new Set),[ef,eb]=(0,s.useState)(!1),[eC,eS]=(0,s.useState)(!1),[eD,eT]=(0,s.useState)(!1),[eA,eP]=(0,s.useState)(!1),[eF,eM]=(0,s.useState)(null),[eR,eE]=(0,s.useState)(!1),{setFeatures:e$,setHasRepositories:eL}=(0,ev.useSidebarFeaturesContext)(),ez=(0,s.useMemo)(()=>P.filter(e=>"featureNode"===e.type),[P]),eB=(0,s.useMemo)(()=>ez.map(e=>{let t=e.data;return`${t.featureId}:${t.state}:${t.name}:${t.repositoryPath}`}).sort().join(","),[ez]);(0,s.useEffect)(()=>{e$(ez.map(e=>{let t=e.data,r=(0,ev.mapNodeStateToSidebarStatus)(t.state);if(!r)return null;let a=t.repositoryPath??"";return{featureId:t.featureId,name:t.name,status:r,repositoryPath:a,repositoryName:t.repositoryName??a.split("/").filter(Boolean).pop()??a,...null!=t.startedAt&&{startedAt:t.startedAt},...null!=t.runtime&&{duration:t.runtime},...t.agentType&&{agentType:t.agentType},...t.modelId&&{modelId:t.modelId}}}).filter(Boolean))},[eB,ez,e$]);let eO=(0,s.useCallback)(e=>{k(()=>y.push(`/application/${e}`))},[y,k]),eU=(0,s.useCallback)(e=>{N.play(),k(()=>y.push((0,D.buildCreateUrl)({applicationId:e,mode:H.BuildMode.Spec})))},[y,N,k]),eW=(0,s.useCallback)((e,t)=>{if("featureNode"===t.type){let r=t.data;"creating"!==r.state&&"deleting"!==r.state&&e.target.closest('[data-testid="feature-node-card"]')&&k(()=>{N.play(),y.push(`/feature/${r.featureId}`)})}},[y,N,k]),eq=(0,s.useCallback)(()=>{N.play(),y.push("/create")},[y,N]),eH=(0,s.useCallback)(e=>{N.play();let t=P.find(t=>t.id===e),r=t?.data?.repositoryPath;y.push((0,D.buildCreateUrl)(r?{repo:r}:{}))},[P,y,N]),e_=(0,s.useCallback)(e=>{let t=e.startsWith("feat-")?e.slice(5):e,r=F.find(t=>t.target===e),a=r?P.find(e=>e.id===r.source):null,s=a?.data?.repositoryPath;N.play(),y.push((0,D.buildCreateUrl)({repo:s,parent:t}))},[P,F,y,N]),eY=(0,s.useCallback)(e=>{let t=P.find(t=>t.id===e);if(t?.type==="repositoryNode"){let e=t.data;e.id&&k(()=>y.push(`/repository/${e.id}`))}},[P,y,k]),eJ=(0,s.useCallback)(()=>{"/control-center"!==b&&k(()=>y.push("/control-center"))},[y,b,k]),eK=(0,s.useCallback)(e=>{setTimeout(()=>{C(ta),S.current=setTimeout(()=>{k(()=>y.push((0,D.buildCreateUrl)({repo:e})))},600)},0)},[C,k,y]),eX=(0,s.useCallback)(e=>{setTimeout(()=>{C({nodes:[{id:e}],maxZoom:1,padding:.4,duration:600})},0)},[C]),eZ=(0,s.useCallback)(e=>{let{wasEmpty:t,repoPath:r,tempNodeId:a}=$(e);t?eK(r):eX(a)},[$,eK,eX]);!function(e){let{addRepoAndFocus:t,createFeatureNode:r,nodes:a,handleDeleteFeature:o,handleArchiveFeature:n,handleUnarchiveFeature:i}=e;(0,s.useEffect)(()=>{let e=e=>{t(e.detail.path)};return window.addEventListener("shep:add-repository",e),()=>window.removeEventListener("shep:add-repository",e)},[t]),(0,s.useEffect)(()=>{let e=e=>{let t=e.detail;if(t.parentId)return void r(`feat-${t.parentId}`,{state:"creating",featureId:t.featureId,name:t.name,description:t.description,repositoryPath:t.repositoryPath},"dependencyEdge");if(t.applicationId){let e=`app-${t.applicationId}`;if(a.find(t=>t.id===e&&"applicationNode"===t.type))return void r(e,{state:"running",featureId:t.featureId,name:t.name,description:t.description,repositoryPath:t.repositoryPath,applicationId:t.applicationId},"dependencyEdge")}let s=a.find(e=>"repositoryNode"===e.type&&e.data.repositoryPath===t.repositoryPath);r(s?.id??null,{state:"running",featureId:t.featureId,name:t.name,description:t.description,repositoryPath:t.repositoryPath})};return window.addEventListener("shep:feature-created",e),()=>window.removeEventListener("shep:feature-created",e)},[a,r]),(0,s.useEffect)(()=>{let e=e=>{let{featureId:t,cleanup:r,cascadeDelete:a,closePr:s}=e.detail;o(t,r,a,s)};return window.addEventListener("shep:feature-delete-requested",e),()=>window.removeEventListener("shep:feature-delete-requested",e)},[o]),(0,s.useEffect)(()=>{let e=e=>{let{featureId:t}=e.detail;n(t)};return window.addEventListener("shep:feature-archive-requested",e),()=>window.removeEventListener("shep:feature-archive-requested",e)},[n]),(0,s.useEffect)(()=>{let e=e=>{let{featureId:t}=e.detail;i(t)};return window.addEventListener("shep:feature-unarchive-requested",e),()=>window.removeEventListener("shep:feature-unarchive-requested",e)},[i])}({addRepoAndFocus:eZ,createFeatureNode:V,nodes:P,handleDeleteFeature:z,handleArchiveFeature:L,handleUnarchiveFeature:q}),(0,s.useEffect)(()=>()=>{null!=S.current&&clearTimeout(S.current)},[]),(0,s.useEffect)(()=>{X({onNodeAction:e_,onFeatureDelete:z,onRetryFeature:B,onStartFeature:O,onStopFeature:U,onArchiveFeature:L,onUnarchiveFeature:q,onRepositoryAdd:eH,onRepositoryClick:eY,onRepositoryDelete:G,onApplicationClick:eO,onApplicationDelete:_,onApplicationCreateSddFeature:eU})},[X,e_,L,z,B,O,U,q,eH,eY,G,eO,_,eU]);let eQ=(0,s.useCallback)((e,t)=>{T(t)},[T]),e0=P.some(e=>"repositoryNode"===e.type),e1=e0||P.some(e=>"applicationNode"===e.type);(0,s.useEffect)(()=>{eL(e0)},[e0,eL]);let[e5,e3]=(0,s.useState)(e1),e4=(0,s.useRef)(null);(0,s.useEffect)(()=>(e1?(e4.current&&(clearTimeout(e4.current),e4.current=null),e3(!0)):e5&&(A(),e4.current=setTimeout(()=>{e3(!1),e4.current=null},500)),()=>{e4.current&&clearTimeout(e4.current)}),[e1,e5,A]),(0,s.useEffect)(()=>{let e=ed.current,t=[],r=[];for(let a of P)e.has(a.id)||(e.add(a.id),"repositoryNode"===a.type?t.push(a.id):"featureNode"===a.type&&r.push(a.id));ee||(0!==t.length||0!==r.length)&&el({repoIds:t,featureIds:r})},[P,ee,el]);let e6=(0,s.useMemo)(()=>{if(ee)return P;let e=new Set(Q.repoIds),t=new Set(Q.featureIds);return P.filter(r=>"repositoryNode"===r.type?e.has(r.id):"featureNode"!==r.type||t.has(r.id))},[P,ee,Q]),e7=(0,s.useMemo)(()=>{if(ee)return F;let e=new Set(e6.map(e=>e.id));return F.filter(t=>e.has(t.source)&&e.has(t.target))},[F,ee,e6]),e8=b.startsWith("/create"),e9=(0,s.useMemo)(()=>{let e=e6.filter(e=>"repositoryNode"===e.type),t=e6.some(e=>"featureNode"===e.type);return 1!==e.length||t||e8?e6:e6.map(e=>"repositoryNode"===e.type?{...e,data:{...e.data,pulseAdd:!0}}:e)},[e6,e8]),ts=(0,s.useCallback)(()=>{window.dispatchEvent(new CustomEvent("shep:pick-folder"))},[]);!function(e){let{activeWorkspace:t,isDefaultActive:r,workspaceFilteredNodes:a,fitView:o}=e,n=(0,s.useMemo)(()=>{if(r)return"default";let e=a.map(e=>e.id).sort().join(",");return`${t.id}:${e}`},[r,t.id,a]),i=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=i.current;if(i.current=n,null===e||e===n||r||0===a.length)return;let t=setTimeout(()=>{o(tt)},0);return()=>clearTimeout(t)},[n,r,a.length,o])}({activeWorkspace:Q,isDefaultActive:ee,workspaceFilteredNodes:e6,fitView:C});let tn=e1&&!ee&&0===e6.length,ti=tn?(0,t.jsxs)("div",{className:"pointer-events-auto flex h-full w-full flex-col items-center justify-center px-8",children:[(0,t.jsx)("div",{className:"bg-primary/10 text-primary mb-5 flex h-12 w-12 items-center justify-center rounded-2xl",children:(0,t.jsx)(eo.Layers,{className:"h-6 w-6"})}),(0,t.jsx)("h2",{className:"text-foreground/90 text-center text-2xl font-light tracking-tight",children:"This workspace is empty"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2 max-w-sm text-center text-sm leading-relaxed",children:"Add repositories or features from the canvas, or switch back to the default workspace to see everything."}),(0,t.jsxs)("div",{className:"mt-6 flex items-center gap-2",children:[(0,t.jsxs)(c.Button,{size:"sm",onClick:()=>eE(!0),className:"bg-blue-500 text-white hover:bg-blue-600",children:[(0,t.jsx)(n.FolderPlus,{className:"me-1.5 h-3.5 w-3.5"}),"New project"]}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>eb(!0),children:[(0,t.jsx)(i.Plus,{className:"me-1.5 h-3.5 w-3.5"}),"Manage items"]}),(0,t.jsx)(c.Button,{variant:"ghost",size:"sm",onClick:()=>et(eu),children:"Switch to Default"})]})]}):(0,t.jsx)(eV,{onRepositorySelect:eZ}),[tl,td]=(0,s.useState)(!1),tc=(0,E.useFeatureFlags)(),tu=(0,s.useMemo)(()=>e.filter(e=>"applicationNode"===e.type).map(e=>({id:e.data.id,name:e.data.name,kind:"app"})),[e]),tp=(0,s.useMemo)(()=>e.filter(e=>"repositoryNode"===e.type).map(e=>({id:e.data.id??e.id,name:e.data.name,kind:"repo"})),[e]),tm=(0,s.useMemo)(()=>e.filter(e=>"featureNode"===e.type).map(e=>({id:e.data.featureId??e.id,name:e.data.name,kind:"feature"})),[e]),th=(0,s.useMemo)(()=>e9.filter(e=>"applicationNode"===e.type),[e9]),tx=1===th.length?th[0].data.id:void 0,tf=1===th.length?th[0].data.name:void 0,tg=function({router:e,clickSound:r,guardedNavigate:a,handlePickFolder:o,onNewProject:i,onNewApplication:d,selectedApplicationId:c,selectedApplicationName:u}){let{t:p}=(0,l.useTranslation)("web");return(0,s.useMemo)(()=>{let s=[{id:"new-project",label:"New project",icon:(0,t.jsx)(n.FolderPlus,{className:"h-4 w-4"}),onClick:()=>{r.play(),i()}},{id:"new-feature",label:p("fab.newFeature"),icon:(0,t.jsx)(eh.Sparkles,{className:"h-4 w-4"}),onClick:()=>{r.play(),a(()=>e.push("/create"))}},{id:"add-local-repo",label:p("fab.localFolder"),icon:(0,t.jsx)(g.FolderOpen,{className:"h-4 w-4"}),onClick:o},{id:"new-application",label:p("fab.newApplication"),icon:(0,t.jsx)(W.LayoutGrid,{className:"h-4 w-4"}),onClick:d}];return c&&s.push({id:"new-sdd-feature-for-app",label:p("fab.newSddForApp",{appName:u??""}),icon:(0,t.jsx)(tr.ClipboardList,{className:"h-4 w-4"}),onClick:()=>{r.play(),a(()=>e.push((0,D.buildCreateUrl)({applicationId:c,mode:H.BuildMode.Spec})))}}),s.push({id:"adopt-branch",label:p("fab.adoptBranch"),icon:(0,t.jsx)(j.GitBranch,{className:"h-4 w-4"}),onClick:()=>{a(()=>e.push("/adopt"))}}),s.push({id:"add-github-repo",label:p("fab.fromGithub"),icon:(0,t.jsx)(h.Github,{className:"h-4 w-4"}),onClick:()=>{window.dispatchEvent(new CustomEvent("shep:open-github-import"))}}),s},[p,r,a,e,o,i,d,c,u])}({router:y,clickSound:N,guardedNavigate:k,handlePickFolder:ts,onNewProject:()=>eE(!0),onNewApplication:()=>td(!0),...void 0!==tx&&{selectedApplicationId:tx},...void 0!==tf&&{selectedApplicationName:tf}}),ty=(0,t.jsx)(ea,{showArchived:Y,onToggleArchived:()=>J(!Y),onResetViewport:A,startSlot:(0,t.jsx)(em,{workspaces:Z,activeWorkspace:Q,onSelect:et,onRequestCreate:()=>eS(!0),onRequestRename:()=>eT(!0),onRequestDelete:e=>{eM(e),eP(!0)},onManage:()=>eb(!0)})});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(K,{nodes:e5?e9:[],edges:e5?e7:[],selectedFeatureId:v,selectedRepository:w,defaultViewport:I,onNodesChange:M,onConnect:R,onAddFeature:eq,onNodeClick:eW,onPaneClick:eJ,onMoveEnd:eQ,toolbar:ty,showToolbarOnEmpty:tn,emptyState:ti}),tc.collaboration?(0,t.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-14 z-10 flex justify-end px-4",children:(0,t.jsx)(e2,{apps:tu,repos:tp,features:tm,className:"pointer-events-auto w-full max-w-md"})}):null,e5?(0,t.jsx)(to,{actions:tg}):null,(0,t.jsx)(eG.NewProjectDialog,{open:eR,onOpenChange:eE,onCreated:e=>eZ(e)}),(0,t.jsx)(ex,{open:ef,onOpenChange:eb,workspace:Q,allNodes:P,onSave:e=>ei(Q.id,e)}),(0,t.jsx)(eg,{open:eC,onOpenChange:eS,title:"New workspace",description:"Create a workspace to filter the canvas to a specific set of repositories and features.",confirmLabel:"Create",onConfirm:e=>{er(e),eb(!0)}}),(0,t.jsx)(eg,{open:eD,onOpenChange:eT,title:"Rename workspace",initialValue:Q.name,confirmLabel:"Rename",onConfirm:e=>es(Q.id,e)}),(0,t.jsx)(ey.AlertDialog,{open:eA,onOpenChange:e=>{eP(e),e||eM(null)},children:(0,t.jsxs)(ey.AlertDialogContent,{children:[(0,t.jsxs)(ey.AlertDialogHeader,{children:[(0,t.jsx)(ey.AlertDialogTitle,{children:"Delete workspace?"}),(0,t.jsxs)(ey.AlertDialogDescription,{children:["This will permanently remove the workspace “",Z.find(e=>e.id===eF)?.name??Q.name,"”. The repositories and features themselves are not affected."]})]}),(0,t.jsxs)(ey.AlertDialogFooter,{children:[(0,t.jsx)(ey.AlertDialogCancel,{children:"Cancel"}),(0,t.jsx)(ey.AlertDialogAction,{variant:"destructive",onClick:()=>{eF&&(en(eF),eM(null))},children:"Delete"})]})]})}),tl?(0,t.jsx)("div",{className:"absolute inset-0 z-50",children:(0,t.jsx)(eI.ControlCenterEmptyState,{onRepositorySelect:e=>{td(!1),eZ(e)},onApplicationCreated:e=>{y.push(`/application/${e}`)},onClose:()=>td(!1),className:"bg-background"})}):null]})}function to({actions:e}){let{state:r}=(0,eC.useSidebar)(),{i18n:a}=(0,l.useTranslation)("web"),{swapPosition:s}=(0,eS.useFabLayout)(),o="rtl"===a.dir();if(s)return(0,t.jsx)(eb.FloatingActionButton,{actions:e,className:"!fixed bottom-6",style:o?{left:"calc(var(--sidebar-width-icon) + 32px)",transition:"left 200ms ease-in-out"}:{right:"32px",transition:"right 200ms ease-in-out"}});let n="expanded"===r?"calc(var(--sidebar-width) + 32px)":"calc(var(--sidebar-width-icon) + 32px)";return(0,t.jsx)(eb.FloatingActionButton,{actions:e,className:"!fixed bottom-6",style:o?{right:n,transition:"right 200ms ease-in-out"}:{left:n,transition:"left 200ms ease-in-out"}})}function tn({initialNodes:e,initialEdges:s,drawer:o}){return(0,t.jsxs)("div",{"data-testid":"control-center",className:"h-full w-full",children:[(0,t.jsx)(a.SessionsProvider,{children:(0,t.jsx)(r.ReactFlowProvider,{children:(0,t.jsx)(ts,{initialNodes:e,initialEdges:s})})}),(0,t.jsx)("div",{children:o},"drawer")]})}e.s(["ControlCenter",()=>tn],948246)},22173,e=>{"use strict";var t=e.i(873504),r=e.i(481605);e.s(["DeploymentStatusProvider",()=>t.DeploymentStatusProvider,"EMPTY_ENTRY",()=>r.EMPTY_ENTRY,"useDeploymentStatusContext",()=>t.useDeploymentStatusContext,"useDeploymentStatusContextOptional",()=>t.useDeploymentStatusContextOptional])}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,670471,e=>{"use strict";var a=e.i(16298);e.s(["FileText",()=>a.default])},267669,e=>{"use strict";let a=(0,e.i(903645).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>a],267669)},276016,e=>{"use strict";let a=(0,e.i(903645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>a],276016)},16298,e=>{"use strict";let a=(0,e.i(903645).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["default",()=>a])},220596,e=>{"use strict";var a=e.i(679606),t=e.i(152155),s=e.i(116457),l=e.i(3214),i=e.i(670471),r=e.i(267669),c=e.i(903645);let d=(0,c.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),n=(0,c.default)("star-off",[["path",{d:"m10.344 4.688 1.181-2.393a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.237 3.152",key:"19ctli"}],["path",{d:"m17.945 17.945.43 2.505a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a8 8 0 0 0 .4-.099",key:"ptqqvy"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var o=e.i(276016),p=e.i(131777),u=e.i(735364),h=e.i(698127),x=e.i(508893);let m=(0,x.createServerReference)("40b2c46f9e03f02feca4cac3a91e904e864efe4caa",x.callServer,void 0,x.findSourceMapURL,"createPage"),f=(0,x.createServerReference)("60434ac49a420236562c6ae3e894d4da8ff8837b8d",x.callServer,void 0,x.findSourceMapURL,"updatePage"),g=(0,x.createServerReference)("403a1d824988b5821d1fd7a1b3d3c63b4b6680de7b",x.callServer,void 0,x.findSourceMapURL,"deletePage"),v=(0,s.default)(()=>e.A(710548).then(e=>e.PageEditor),{loadableGenerated:{modules:[853645]},ssr:!1});function y({projectId:e,pages:s,className:c}){let[x,y]=(0,t.useState)(s),[j,k]=(0,t.useState)(null),[b,N]=(0,t.useState)(!1),[w,C]=(0,t.useState)(""),[P,S]=(0,t.useState)(null),M=x.find(e=>e.id===j),F=x.filter(e=>!e.parentId),T=(0,t.useCallback)(e=>x.filter(a=>a.parentId===e),[x]),R=(0,t.useCallback)(async()=>{let a=w.trim();if(!a)return;let t=await m({projectId:e,title:a});t.page&&(y(e=>[...e,t.page]),k(t.page.id),C(""),N(!1))},[e,w]),L=(0,t.useCallback)(async e=>{if(!j)return;let a=await f(j,{content:e});a.page&&y(e=>e.map(e=>e.id===a.page.id?a.page:e))},[j]),z=(0,t.useCallback)(async(e,a)=>{let t=a.trim();if(!t)return;let s=await f(e,{title:t});s.page&&y(e=>e.map(e=>e.id===s.page.id?s.page:e)),S(null)},[]),B=(0,t.useCallback)(async e=>{(await g(e)).error||(y(a=>a.filter(a=>a.id!==e)),j===e&&k(null))},[j]),U=(0,t.useCallback)(async(e,a)=>{let t=await f(e,{isFavorite:!a});t.page&&y(e=>e.map(e=>e.id===t.page.id?t.page:e))},[]),E=(e,t=0)=>{let s=T(e.id),l=j===e.id,c=P===e.id;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{"data-testid":`page-item-${e.id}`,className:(0,p.cn)("group hover:bg-accent/50 flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs",l&&"bg-accent"),style:{paddingLeft:`${8+16*t}px`},onClick:()=>k(e.id),children:[s.length>0&&(0,a.jsx)(o.ChevronRight,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,a.jsx)(i.FileText,{className:"text-muted-foreground h-3 w-3 shrink-0"}),c?(0,a.jsx)(h.Input,{autoFocus:!0,defaultValue:e.title,className:"h-5 text-xs",onBlur:a=>z(e.id,a.target.value),onKeyDown:a=>{"Enter"===a.key&&z(e.id,a.currentTarget.value),"Escape"===a.key&&S(null)},onClick:e=>e.stopPropagation()}):(0,a.jsx)("span",{className:"flex-1 truncate",onDoubleClick:a=>{a.stopPropagation(),S(e.id)},children:e.title}),(0,a.jsxs)("div",{className:"hidden gap-0.5 group-hover:flex",children:[(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-4 w-4 p-0",onClick:a=>{a.stopPropagation(),U(e.id,e.isFavorite)},title:e.isFavorite?"Unfavorite":"Favorite",children:e.isFavorite?(0,a.jsx)(d,{className:"h-2.5 w-2.5 fill-yellow-400 text-yellow-400"}):(0,a.jsx)(n,{className:"h-2.5 w-2.5"})}),(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"text-destructive h-4 w-4 p-0",onClick:a=>{a.stopPropagation(),B(e.id)},title:"Delete page",children:(0,a.jsx)(r.Trash2,{className:"h-2.5 w-2.5"})})]})]}),s.map(e=>E(e,t+1))]},e.id)};return(0,a.jsxs)("div",{"data-testid":"pages-panel",className:(0,p.cn)("flex h-full gap-0",c),children:[(0,a.jsxs)("div",{className:"flex w-56 shrink-0 flex-col border-r",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b px-3 py-2",children:[(0,a.jsx)("span",{className:"text-xs font-medium",children:"Pages"}),(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>N(!0),"data-testid":"create-page-btn",children:(0,a.jsx)(l.Plus,{className:"h-3 w-3"})})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto p-1",children:[b?(0,a.jsx)("div",{className:"mb-1 px-2",children:(0,a.jsx)(h.Input,{autoFocus:!0,placeholder:"Page title...",value:w,onChange:e=>C(e.target.value),onKeyDown:e=>{"Enter"===e.key&&R(),"Escape"===e.key&&(N(!1),C(""))},onBlur:()=>{w.trim()?R():(N(!1),C(""))},className:"h-6 text-xs","data-testid":"new-page-input"})}):null,0!==F.length||b?F.map(e=>E(e)):(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[(0,a.jsx)(i.FileText,{className:"mb-2 h-5 w-5 opacity-20"}),(0,a.jsx)("p",{className:"text-muted-foreground text-[10px]",children:"No pages yet"})]})]})]}),(0,a.jsx)("div",{className:"flex flex-1 flex-col overflow-hidden",children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"border-b px-4 py-2",children:(0,a.jsx)("h2",{className:"text-sm font-medium",children:M.title})}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)(v,{content:M.content??"",onUpdate:L})})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)(i.FileText,{className:"mx-auto mb-2 h-8 w-8 opacity-20"}),(0,a.jsx)("p",{className:"text-muted-foreground text-xs",children:"Select or create a page"})]})})})]})}e.s(["PagesPanel",()=>y],220596)},710548,e=>{e.v(a=>Promise.all(["static/chunks/c0ec1e62b201bc26.js","static/chunks/f0489081bef94e11.js"].map(a=>e.l(a))).then(()=>a(853645)))}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,670471,e=>{"use strict";var a=e.i(16298);e.s(["FileText",()=>a.default])},267669,e=>{"use strict";let a=(0,e.i(903645).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>a],267669)},276016,e=>{"use strict";let a=(0,e.i(903645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>a],276016)},16298,e=>{"use strict";let a=(0,e.i(903645).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["default",()=>a])},220596,e=>{"use strict";var a=e.i(679606),t=e.i(152155),s=e.i(116457),l=e.i(3214),i=e.i(670471),r=e.i(267669),c=e.i(903645);let d=(0,c.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),n=(0,c.default)("star-off",[["path",{d:"m10.344 4.688 1.181-2.393a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.237 3.152",key:"19ctli"}],["path",{d:"m17.945 17.945.43 2.505a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a8 8 0 0 0 .4-.099",key:"ptqqvy"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var o=e.i(276016),p=e.i(131777),u=e.i(735364),h=e.i(698127),x=e.i(508893);let m=(0,x.createServerReference)("40d1bd24ce2402ecc58756faf5d56a6e410885afc7",x.callServer,void 0,x.findSourceMapURL,"createPage"),f=(0,x.createServerReference)("60b46fa9cfd2b7c3acca65557e8e965cfc3b2153bf",x.callServer,void 0,x.findSourceMapURL,"updatePage"),g=(0,x.createServerReference)("40fd658b007c3d49bb929f452f98dd40363b374e35",x.callServer,void 0,x.findSourceMapURL,"deletePage"),v=(0,s.default)(()=>e.A(710548).then(e=>e.PageEditor),{loadableGenerated:{modules:[853645]},ssr:!1});function y({projectId:e,pages:s,className:c}){let[x,y]=(0,t.useState)(s),[j,b]=(0,t.useState)(null),[k,N]=(0,t.useState)(!1),[w,C]=(0,t.useState)(""),[P,S]=(0,t.useState)(null),M=x.find(e=>e.id===j),F=x.filter(e=>!e.parentId),T=(0,t.useCallback)(e=>x.filter(a=>a.parentId===e),[x]),R=(0,t.useCallback)(async()=>{let a=w.trim();if(!a)return;let t=await m({projectId:e,title:a});t.page&&(y(e=>[...e,t.page]),b(t.page.id),C(""),N(!1))},[e,w]),L=(0,t.useCallback)(async e=>{if(!j)return;let a=await f(j,{content:e});a.page&&y(e=>e.map(e=>e.id===a.page.id?a.page:e))},[j]),z=(0,t.useCallback)(async(e,a)=>{let t=a.trim();if(!t)return;let s=await f(e,{title:t});s.page&&y(e=>e.map(e=>e.id===s.page.id?s.page:e)),S(null)},[]),B=(0,t.useCallback)(async e=>{(await g(e)).error||(y(a=>a.filter(a=>a.id!==e)),j===e&&b(null))},[j]),U=(0,t.useCallback)(async(e,a)=>{let t=await f(e,{isFavorite:!a});t.page&&y(e=>e.map(e=>e.id===t.page.id?t.page:e))},[]),E=(e,t=0)=>{let s=T(e.id),l=j===e.id,c=P===e.id;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{"data-testid":`page-item-${e.id}`,className:(0,p.cn)("group hover:bg-accent/50 flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs",l&&"bg-accent"),style:{paddingLeft:`${8+16*t}px`},onClick:()=>b(e.id),children:[s.length>0&&(0,a.jsx)(o.ChevronRight,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,a.jsx)(i.FileText,{className:"text-muted-foreground h-3 w-3 shrink-0"}),c?(0,a.jsx)(h.Input,{autoFocus:!0,defaultValue:e.title,className:"h-5 text-xs",onBlur:a=>z(e.id,a.target.value),onKeyDown:a=>{"Enter"===a.key&&z(e.id,a.currentTarget.value),"Escape"===a.key&&S(null)},onClick:e=>e.stopPropagation()}):(0,a.jsx)("span",{className:"flex-1 truncate",onDoubleClick:a=>{a.stopPropagation(),S(e.id)},children:e.title}),(0,a.jsxs)("div",{className:"hidden gap-0.5 group-hover:flex",children:[(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-4 w-4 p-0",onClick:a=>{a.stopPropagation(),U(e.id,e.isFavorite)},title:e.isFavorite?"Unfavorite":"Favorite",children:e.isFavorite?(0,a.jsx)(d,{className:"h-2.5 w-2.5 fill-yellow-400 text-yellow-400"}):(0,a.jsx)(n,{className:"h-2.5 w-2.5"})}),(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"text-destructive h-4 w-4 p-0",onClick:a=>{a.stopPropagation(),B(e.id)},title:"Delete page",children:(0,a.jsx)(r.Trash2,{className:"h-2.5 w-2.5"})})]})]}),s.map(e=>E(e,t+1))]},e.id)};return(0,a.jsxs)("div",{"data-testid":"pages-panel",className:(0,p.cn)("flex h-full gap-0",c),children:[(0,a.jsxs)("div",{className:"flex w-56 shrink-0 flex-col border-r",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b px-3 py-2",children:[(0,a.jsx)("span",{className:"text-xs font-medium",children:"Pages"}),(0,a.jsx)(u.Button,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>N(!0),"data-testid":"create-page-btn",children:(0,a.jsx)(l.Plus,{className:"h-3 w-3"})})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto p-1",children:[k?(0,a.jsx)("div",{className:"mb-1 px-2",children:(0,a.jsx)(h.Input,{autoFocus:!0,placeholder:"Page title...",value:w,onChange:e=>C(e.target.value),onKeyDown:e=>{"Enter"===e.key&&R(),"Escape"===e.key&&(N(!1),C(""))},onBlur:()=>{w.trim()?R():(N(!1),C(""))},className:"h-6 text-xs","data-testid":"new-page-input"})}):null,0!==F.length||k?F.map(e=>E(e)):(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[(0,a.jsx)(i.FileText,{className:"mb-2 h-5 w-5 opacity-20"}),(0,a.jsx)("p",{className:"text-muted-foreground text-[10px]",children:"No pages yet"})]})]})]}),(0,a.jsx)("div",{className:"flex flex-1 flex-col overflow-hidden",children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"border-b px-4 py-2",children:(0,a.jsx)("h2",{className:"text-sm font-medium",children:M.title})}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,a.jsx)(v,{content:M.content??"",onUpdate:L})})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)(i.FileText,{className:"mx-auto mb-2 h-8 w-8 opacity-20"}),(0,a.jsx)("p",{className:"text-muted-foreground text-xs",children:"Select or create a page"})]})})})]})}e.s(["PagesPanel",()=>y],220596)},710548,e=>{e.v(a=>Promise.all(["static/chunks/c0ec1e62b201bc26.js","static/chunks/f0489081bef94e11.js"].map(a=>e.l(a))).then(()=>a(853645)))}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,34562,630616,e=>{"use strict";var t=e.i(679606),r=e.i(152155);e.i(541001);var a=e.i(64780),s=e.i(216868),i=e.i(283843),o=e.i(197667),l=e.i(453360),n=e.i(655016),c=e.i(591925),d=e.i(83428),p=e.i(381542),u=e.i(670471),x=e.i(912103),h=e.i(43416),m=e.i(542049),f=e.i(941698),b=e.i(131777),g=e.i(808361);e.i(1650);var j=e.i(511495),w=e.i(845811),v=e.i(735364),y=e.i(698127),C=e.i(48306),k=e.i(141957),N=e.i(81846),D=e.i(390382),T=e.i(951911),S=e.i(102828),F=e.i(930153);e.i(650032);var P=e.i(486254),L=e.i(508893);let M=(0,L.createServerReference)("40a9bed0961557794854c68543db57f58a5b63635e",L.callServer,void 0,L.findSourceMapURL,"getViewerPermission");var z=e.i(41413),E=e.i(425235),B=e.i(478521);e.i(13322);var R=e.i(961201),A=e.i(175921),U=e.i(236232),I=e.i(317406),O=e.i(442076);let K=[I.BuildMode.Fast,I.BuildMode.Spec],$={[I.BuildMode.Application]:{icon:m.LayoutGrid,labelKey:"createDrawer.modeApplication"},[I.BuildMode.Fast]:{icon:l.Zap,labelKey:"createDrawer.modeFast"},[I.BuildMode.Spec]:{icon:f.ClipboardList,labelKey:"createDrawer.modeSpec"}},G=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"]),q={allowPrd:!1,allowPlan:!1,allowMerge:!1};function W({open:e,onClose:i,onSubmit:o,repositoryPath:l,isSubmitting:c=!1,workflowDefaults:d,features:m,repositories:f,initialParentId:y,currentAgentType:D,currentModel:L,initialDescription:E,canPushDirectly:B,initialMode:R,initialApplicationId:A}){let U=void 0!==A,W=U&&!R?I.BuildMode.Spec:R,V=(0,g.useSoundAction)("create"),{t:H}=(0,a.useTranslation)("web"),Q=l&&(U||!f||0===f.length||f.some(e=>e.path===l))?l:"",X=d?.approvalGates??q,Y=d?.push??!1,_=d?.openPr??!1,ee=d?.ciWatchEnabled!==!1,et=d?.enableEvidence??!1,er=d?.commitEvidence??!1,ea=W||(d?.fast===!1?I.BuildMode.Spec:I.BuildMode.Fast),[es,ei]=(0,r.useState)(E??"");(0,r.useEffect)(()=>{E&&ei(E)},[E]);let[eo,el]=(0,r.useState)([]),[en,ec]=(0,r.useState)({...X}),[ed,ep]=(0,r.useState)(Y),[eu,ex]=(0,r.useState)(_),[eh,em]=(0,r.useState)(d?.ciWatchEnabled!==!1),[ef,eb]=(0,r.useState)(et),[eg,ej]=(0,r.useState)(er),[ew,ev]=(0,r.useState)(void 0),[ey,eC]=(0,r.useState)(ea),ek=ey===I.BuildMode.Fast,[eN,eD]=(0,r.useState)(!1),[eT,eS]=(0,r.useState)(!1),[eF,eP]=(0,r.useState)(!0),[eL,eM]=(0,r.useState)(!0),[ez,eE]=(0,r.useState)(d?.injectSkills??!1),[eB,eR]=(0,r.useState)(void 0),[eA,eU]=(0,r.useState)(void 0),[eI,eO]=(0,r.useState)(Q||void 0),[eK,e$]=(0,r.useState)(f??[]),[eG,eq]=(0,r.useState)(!1),[eW,eZ]=(0,r.useState)(null),[eJ,eV]=(0,r.useState)(!1),eH=(0,r.useRef)(crypto.randomUUID()),eQ=(0,r.useRef)(0),eX=(0,r.useRef)(null);(0,r.useEffect)(()=>{d&&(ec({...d.approvalGates}),ep(d.push),ex(d.openPr),em(!1!==d.ciWatchEnabled),eb(d.enableEvidence),ej(d.commitEvidence),W||eC(!1!==d.fast?I.BuildMode.Fast:I.BuildMode.Spec),eE(d.injectSkills??!1))},[d,W]),(0,r.useEffect)(()=>{e$(f??[])},[f]),(0,r.useEffect)(()=>{e&&y&&ev(y)},[e,y]);let[eY,e_]=(0,r.useState)(B??!1);(0,r.useEffect)(()=>{e_(B??!1)},[B]);let e0=(0,r.useRef)(eI);(0,r.useEffect)(()=>{eI&&eI!==e0.current&&(e0.current=eI,M(eI).then(e=>e_(e.canPushDirectly)).catch(()=>e_(!1)))},[eI]),(0,r.useEffect)(()=>{eY&&(eS(!1),ep(Y),ex(_),eP(!0))},[eY,Y,_]);let e1=(0,r.useCallback)(()=>{ei(""),el([]),ec({...X}),ep(Y),ex(_),em(ee),eb(et),ej(er),ev(void 0),eO(Q||void 0),e$(f??[]),eC(ea),eD(!1),eS(!1),eP(!0),eM(!0),eR(void 0),eU(void 0),eZ(null),eQ.current=0,eq(!1)},[X,Y,_,et,ee,er,ea,Q,f]),e5=""!==es.trim()||eo.length>0,{attemptClose:e3}=(0,F.useGuardedDrawerClose)({open:e,isDirty:e5,onClose:i,onReset:e1}),e2=(0,r.useCallback)(async e=>{for(let t of(eZ(null),e)){if(t.size>0xa00000)return void eZ(`"${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&&!G.has(e))return void eZ(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();el(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",eH.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));el(t=>t.filter(t=>t.id!==e)),eZ(t.error??"Upload failed");return}let s=await a.json();el(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{el(t=>t.filter(t=>t.id!==e)),eZ("Upload failed")}}},[]),e4=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current+=1,1===eQ.current&&eq(!0)},[]),e6=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current-=1,0===eQ.current&&eq(!1)},[]),e8=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),e9=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current=0,eq(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&e2(t)},[e2]),e7=(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(),e2(r))},[e2]),te=(0,r.useCallback)(e=>{if(e.preventDefault(),!es.trim())return;let t=eI??Q;t&&(V.play(),o({description:es.trim(),attachments:eo.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:en.allowPrd??!1,allowPlan:en.allowPlan??!1,allowMerge:en.allowMerge??!1},push:!!eT||ed||eu,openPr:!!eT||eu,ciWatchEnabled:eh,enableEvidence:ef,commitEvidence:eg,fast:ek,forkAndPr:eT,commitSpecs:eF,rebaseBeforeBranch:eL,injectSkills:ez,...eN?{pending:eN}:{},...eB?{agentType:eB}:{},...eA?{model:eA}:{},...ew?{parentId:ew}:{},...A?{applicationId:A}:{},sessionId:eH.current}),e1())},[es,eo,en,eI,Q,o,ed,eu,ef,eh,eg,ek,eT,eF,eL,ez,eN,eB,eA,ew,A,V,e1]),tt=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();el(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:eH.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));el(t=>t.filter(t=>t.id!==e)),eZ(t.error??"Upload failed");return}let a=await r.json();el(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{el(t=>t.filter(t=>t.id!==e)),eZ("Upload failed")}}}catch{}},[]),tr=(0,r.useCallback)(e=>{el(t=>t.filter(t=>t.id!==e))},[]),ta=(0,r.useCallback)((e,t)=>{el(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),ts=(0,r.useRef)(null),ti=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),ts.current?.requestSubmit())},[]),to=(0,r.useCallback)(()=>{eV(!0)},[]),tl=(0,r.useCallback)(()=>{setTimeout(()=>{let e=eX.current?.contains(document.activeElement),t=eX.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eV(!1)},0)},[]),tn=m&&m.length>0,tc=!Q&&!eI,td=!Q&&void 0!==f,tp=[{id:"allowPrd",label:H("createDrawer.prd"),description:H("createDrawer.prdDescription")},{id:"allowPlan",label:H("createDrawer.plan"),description:H("createDrawer.planDescription")},{id:"allowMerge",label:H("createDrawer.merge"),description:H("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:e3,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)(w.DrawerTitle,{children:H("createDrawer.title")})]}),c?(0,t.jsx)(w.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(N.Badge,{variant:"secondary",children:H("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(v.Button,{variant:"outline",onClick:e3,disabled:c,children:H("createDrawer.cancel")}),(0,t.jsx)(v.Button,{type:"submit",form:"create-feature-form",disabled:!es.trim()||c||tc,children:c?H("createDrawer.creating"):H("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(S.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:ts,id:"create-feature-form",onSubmit:te,onKeyDown:ti,className:"flex flex-col gap-4",children:[U?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section","data-locked-by-application":"true",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("p",{className:"text-sm opacity-70","data-testid":"repo-readonly-label","aria-disabled":"true","aria-describedby":"locked-by-application-tooltip",title:H("createDrawer.lockedByApplication"),children:f?.find(e=>e.path===Q)?.name??(Q?Q.split("/").pop():"")??Q})}),(0,t.jsx)(S.TooltipContent,{id:"locked-by-application-tooltip",role:"tooltip",side:"bottom",children:H("createDrawer.lockedByApplication")})]})]}):td?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsx)(J,{repositories:eK,value:eI,onChange:eO,onAddRepository:e=>{e$(t=>[...t,e]),eO(e.path)},disabled:c})]}):Q?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:f?.find(e=>e.path===Q)?.name??Q.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":H("createDrawer.fileDropZone"),"data-drag-over":eG?"true":"false",onDragEnter:e4,onDragLeave:e6,onDragOver:e8,onDrop:e9,className:(0,b.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eG&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(k.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:eX,onFocus:to,onBlur:tl,className:(0,b.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eJ&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(C.Textarea,{id:"feature-description",placeholder:H("createDrawer.featurePlaceholder"),value:es,onChange:e=>ei(e.target.value),onPaste:e7,required:!0,disabled:c,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),eo.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:eo.map(e=>(0,t.jsx)(P.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>tr(e.id),disabled:c,loading:e.loading,notes:e.notes,onNotesChange:t=>ta(e.id,t)},e.id))}),eW?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eW}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(z.AgentModelPicker,{initialAgentType:eB??D??"",initialModel:eA??L??"",mode:"override",onAgentModelChange:(e,t)=>{eR(e),eU(t)},disabled:c,className:"w-55"}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(T.Switch,{id:"pending-mode",checked:eN,onCheckedChange:eD,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(n.Clock,{className:"h-3.5 w-3.5"}),H("createDrawer.pendingMode")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.pendingModeDescription")})]}),(0,t.jsx)("div",{role:"group","aria-label":H("createDrawer.modeGroupLabel"),className:"border-input flex items-center gap-0.5 rounded-md border p-0.5",children:K.map(e=>{let r=$[e],a=r.icon,s=ey===e;return(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button","data-testid":`build-mode-${e}`,"aria-pressed":s,"aria-disabled":c,disabled:c,onClick:()=>eC(e),className:(0,b.cn)("flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors",s?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground","disabled:cursor-not-allowed disabled:opacity-50"),children:[(0,t.jsx)(a,{className:"h-3.5 w-3.5"}),H(r.labelKey)]})}),(0,t.jsx)(S.TooltipContent,{role:"tooltip",side:"bottom",children:H(`${r.labelKey}Description`)})]},e)})}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:tt,disabled:c,"aria-label":H("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(s.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("chat.attachFiles")})]})]})]})]}),tn&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.parentFeature")}),(0,t.jsx)(Z,{features:m,value:ew,onChange:ev,disabled:c})]}):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)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.approve")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tp.map(e=>(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:`approve-${e.id}`,size:"sm",checked:en[e.id]??!1,onCheckedChange:t=>ec(r=>({...r,[e.id]:t})),disabled:c||ek&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(k.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:ek&&("allowPrd"===e.id||"allowPlan"===e.id)?H("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tp.every(e=>en[e.id]),t={};for(let r of tp)t[r.id]=!e;ec(t)},disabled:c,className:(0,b.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",tp.every(e=>en[e.id])&&"text-primary"),children:H("createDrawer.all")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("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)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.evidence")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"enable-evidence",size:"sm",checked:ef,onCheckedChange:e=>{eb(e),e||ej(!1)},disabled:c}),(0,t.jsx)(k.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:H("createDrawer.collect")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.collectDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"commit-evidence",size:"sm",checked:eg,onCheckedChange:ej,disabled:c||!ef||!eu&&!eT}),(0,t.jsx)(k.Label,{htmlFor:"commit-evidence",className:(0,b.cn)("cursor-pointer text-xs font-medium",(!ef||!eu&&!eT)&&"opacity-50"),children:H("createDrawer.addToPr")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eu||eT?ef?H("createDrawer.addToPrDescription"):H("createDrawer.requiresEvidence"):H("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.skills")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.skillsDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"inject-skills",size:"sm",checked:ez,onCheckedChange:eE,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.Puzzle,{className:"h-3 w-3"}),H("createDrawer.injectSkills")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.injectSkillsDescription")})]})})]}),(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:H("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"push",size:"sm",checked:!!eT||ed||eu,onCheckedChange:e=>{ep(e),!e&&eu&&ex(!1)},disabled:c||eT}),(0,t.jsx)(k.Label,{htmlFor:"push",className:(0,b.cn)("cursor-pointer text-xs font-medium",eT&&"opacity-50"),children:H("createDrawer.push")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eT?"Enabled — contributing to upstream":H("createDrawer.pushDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"open-pr",size:"sm",checked:!!eT||eu,onCheckedChange:e=>{ex(e),e||ej(!1)},disabled:c||eT}),(0,t.jsx)(k.Label,{htmlFor:"open-pr",className:(0,b.cn)("cursor-pointer text-xs font-medium",eT&&"opacity-50"),children:H("createDrawer.pr")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eT?"Enabled — contributing to upstream":H("createDrawer.prDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"ci-watch",size:"sm",checked:eh,onCheckedChange:em,disabled:c}),(0,t.jsx)(k.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:H("createDrawer.watch")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"rebase-before-branch",size:"sm",checked:eL,onCheckedChange:eM,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(h.RefreshCw,{className:"h-3 w-3"}),H("createDrawer.sync")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.syncDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"commit-specs",size:"sm",checked:eF,onCheckedChange:eP,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(u.FileText,{className:"h-3 w-3"}),H("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.commitSpecsDescription")})]}),!eY&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"fork-and-pr",size:"sm",checked:eT,onCheckedChange:e=>{eS(e),e&&eP(!1)},disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(p.GitFork,{className:"h-3 w-3"}),H("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function Z({features:e,value:s,onChange:l,disabled:n}){let{t:c}=(0,a.useTranslation)("web"),[d,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),h=(0,r.useRef)(null),m=e.find(e=>e.id===s),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,g=(0,r.useCallback)(e=>{l(e),p(!1),x("")},[l]);return(0,r.useEffect)(()=>{d?setTimeout(()=>h.current?.focus(),0):x("")},[d]),(0,t.jsxs)(D.Popover,{open:d,onOpenChange:p,children:[(0,t.jsx)(D.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":d,"aria-label":"Parent Feature",disabled:n,"data-testid":"parent-feature-combobox",className:(0,b.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",!m&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:m?`${m.name} (${m.id.slice(0,8)})`:c("createDrawer.selectParent")}),(0,t.jsx)(i.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(D.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)(y.Input,{ref:h,placeholder:c("createDrawer.searchFeatures"),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":"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===s,onClick:()=>g(void 0),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===s&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",void 0!==s&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:c("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:c("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":s===e.id,onClick:()=>g(e.id),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",s===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",s!==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 J({repositories:e,value:s,onChange:l,onAddRepository:n,disabled:u}){let[x,h]=(0,r.useState)(!1),[m,f]=(0,r.useState)(""),[g,j]=(0,r.useState)(!1),[w,v]=(0,r.useState)(null),[C,k]=(0,r.useState)(!1),T=(0,r.useRef)(null),{reactFileManager:S}=(0,A.useFeatureFlags)(),{t:F}=(0,a.useTranslation)("web"),P=e.find(e=>e.path===s),L=m.trim()?e.filter(e=>e.name.toLowerCase().includes(m.toLowerCase())||e.path.toLowerCase().includes(m.toLowerCase())):e,M=(0,r.useCallback)(e=>{l(e),h(!1),f("")},[l]),z=(0,r.useCallback)(async e=>{let t=await (0,U.addRepository)({path:e});if(t.error){v(t.error),j(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};n?.(e),l(e.path),h(!1),f("")}},[n,l]),I=(0,r.useCallback)(async()=>{if(!g){if(S)return void k(!0);j(!0),v(null);try{let e=await (0,B.pickFolder)();if(!e)return void j(!1);await z(e)}catch{k(!0)}finally{j(!1)}}},[g,S,z]),O=(0,r.useCallback)(async e=>{if(k(!1),e){j(!0),v(null);try{await z(e)}catch(e){v(e instanceof Error?e.message:"Failed to add repository")}finally{j(!1)}}},[z]);return(0,r.useEffect)(()=>{x?setTimeout(()=>T.current?.focus(),0):f("")},[x]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(D.Popover,{open:x,onOpenChange:h,children:[(0,t.jsx)(D.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":x,"aria-label":"Repository",disabled:u,"data-testid":"repository-combobox",className:(0,b.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",!P&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:P?P.name:"Select repository..."}),(0,t.jsx)(i.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(D.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)(y.Input,{ref:T,placeholder:F("createDrawer.searchRepositories"),value:m,onChange:e=>f(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===L.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):L.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":s===e.path,onClick:()=>M(e.path),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",s===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",s!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[e.name,e.isFork?(0,t.jsxs)(N.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,t.jsx)(p.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(E.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:I,disabled:g,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:[g?(0,t.jsx)(d.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(c.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)(R.ReactFileManagerDialog,{open:C,onOpenChange:e=>{e||k(!1)},onSelect:O})]})}e.s(["FeatureCreateDrawer",()=>W],630616),e.s([],34562)},12326,e=>{"use strict";var t=e.i(508893);let r=(0,t.createServerReference)("4023e0e62ab6873f251d393a3ac53fce2a7d1e363d",t.callServer,void 0,t.findSourceMapURL,"createFeature");e.s(["createFeature",()=>r])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,34562,630616,e=>{"use strict";var t=e.i(679606),r=e.i(152155);e.i(541001);var a=e.i(64780),s=e.i(216868),i=e.i(283843),o=e.i(197667),l=e.i(453360),n=e.i(655016),c=e.i(591925),d=e.i(83428),p=e.i(381542),u=e.i(670471),x=e.i(912103),h=e.i(43416),m=e.i(542049),f=e.i(941698),b=e.i(131777),g=e.i(808361);e.i(1650);var j=e.i(511495),w=e.i(845811),v=e.i(735364),y=e.i(698127),C=e.i(48306),k=e.i(141957),N=e.i(81846),D=e.i(390382),T=e.i(951911),S=e.i(102828),F=e.i(930153);e.i(650032);var P=e.i(486254),L=e.i(508893);let M=(0,L.createServerReference)("40b7b82f66bd9e710a727e7544c2fb50fda2cf3008",L.callServer,void 0,L.findSourceMapURL,"getViewerPermission");var z=e.i(41413),E=e.i(425235),B=e.i(478521);e.i(13322);var R=e.i(961201),A=e.i(175921),U=e.i(172637),I=e.i(317406),O=e.i(442076);let K=[I.BuildMode.Fast,I.BuildMode.Spec],$={[I.BuildMode.Application]:{icon:m.LayoutGrid,labelKey:"createDrawer.modeApplication"},[I.BuildMode.Fast]:{icon:l.Zap,labelKey:"createDrawer.modeFast"},[I.BuildMode.Spec]:{icon:f.ClipboardList,labelKey:"createDrawer.modeSpec"}},G=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"]),q={allowPrd:!1,allowPlan:!1,allowMerge:!1};function W({open:e,onClose:i,onSubmit:o,repositoryPath:l,isSubmitting:c=!1,workflowDefaults:d,features:m,repositories:f,initialParentId:y,currentAgentType:D,currentModel:L,initialDescription:E,canPushDirectly:B,initialMode:R,initialApplicationId:A}){let U=void 0!==A,W=U&&!R?I.BuildMode.Spec:R,V=(0,g.useSoundAction)("create"),{t:H}=(0,a.useTranslation)("web"),Q=l&&(U||!f||0===f.length||f.some(e=>e.path===l))?l:"",X=d?.approvalGates??q,Y=d?.push??!1,_=d?.openPr??!1,ee=d?.ciWatchEnabled!==!1,et=d?.enableEvidence??!1,er=d?.commitEvidence??!1,ea=W||(d?.fast===!1?I.BuildMode.Spec:I.BuildMode.Fast),[es,ei]=(0,r.useState)(E??"");(0,r.useEffect)(()=>{E&&ei(E)},[E]);let[eo,el]=(0,r.useState)([]),[en,ec]=(0,r.useState)({...X}),[ed,ep]=(0,r.useState)(Y),[eu,ex]=(0,r.useState)(_),[eh,em]=(0,r.useState)(d?.ciWatchEnabled!==!1),[ef,eb]=(0,r.useState)(et),[eg,ej]=(0,r.useState)(er),[ew,ev]=(0,r.useState)(void 0),[ey,eC]=(0,r.useState)(ea),ek=ey===I.BuildMode.Fast,[eN,eD]=(0,r.useState)(!1),[eT,eS]=(0,r.useState)(!1),[eF,eP]=(0,r.useState)(!0),[eL,eM]=(0,r.useState)(!0),[ez,eE]=(0,r.useState)(d?.injectSkills??!1),[eB,eR]=(0,r.useState)(void 0),[eA,eU]=(0,r.useState)(void 0),[eI,eO]=(0,r.useState)(Q||void 0),[eK,e$]=(0,r.useState)(f??[]),[eG,eq]=(0,r.useState)(!1),[eW,eZ]=(0,r.useState)(null),[eJ,eV]=(0,r.useState)(!1),eH=(0,r.useRef)(crypto.randomUUID()),eQ=(0,r.useRef)(0),eX=(0,r.useRef)(null);(0,r.useEffect)(()=>{d&&(ec({...d.approvalGates}),ep(d.push),ex(d.openPr),em(!1!==d.ciWatchEnabled),eb(d.enableEvidence),ej(d.commitEvidence),W||eC(!1!==d.fast?I.BuildMode.Fast:I.BuildMode.Spec),eE(d.injectSkills??!1))},[d,W]),(0,r.useEffect)(()=>{e$(f??[])},[f]),(0,r.useEffect)(()=>{e&&y&&ev(y)},[e,y]);let[eY,e_]=(0,r.useState)(B??!1);(0,r.useEffect)(()=>{e_(B??!1)},[B]);let e0=(0,r.useRef)(eI);(0,r.useEffect)(()=>{eI&&eI!==e0.current&&(e0.current=eI,M(eI).then(e=>e_(e.canPushDirectly)).catch(()=>e_(!1)))},[eI]),(0,r.useEffect)(()=>{eY&&(eS(!1),ep(Y),ex(_),eP(!0))},[eY,Y,_]);let e1=(0,r.useCallback)(()=>{ei(""),el([]),ec({...X}),ep(Y),ex(_),em(ee),eb(et),ej(er),ev(void 0),eO(Q||void 0),e$(f??[]),eC(ea),eD(!1),eS(!1),eP(!0),eM(!0),eR(void 0),eU(void 0),eZ(null),eQ.current=0,eq(!1)},[X,Y,_,et,ee,er,ea,Q,f]),e5=""!==es.trim()||eo.length>0,{attemptClose:e2}=(0,F.useGuardedDrawerClose)({open:e,isDirty:e5,onClose:i,onReset:e1}),e4=(0,r.useCallback)(async e=>{for(let t of(eZ(null),e)){if(t.size>0xa00000)return void eZ(`"${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&&!G.has(e))return void eZ(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();el(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",eH.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));el(t=>t.filter(t=>t.id!==e)),eZ(t.error??"Upload failed");return}let s=await a.json();el(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{el(t=>t.filter(t=>t.id!==e)),eZ("Upload failed")}}},[]),e3=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current+=1,1===eQ.current&&eq(!0)},[]),e6=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current-=1,0===eQ.current&&eq(!1)},[]),e8=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),e7=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eQ.current=0,eq(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&e4(t)},[e4]),e9=(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(),e4(r))},[e4]),te=(0,r.useCallback)(e=>{if(e.preventDefault(),!es.trim())return;let t=eI??Q;t&&(V.play(),o({description:es.trim(),attachments:eo.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:en.allowPrd??!1,allowPlan:en.allowPlan??!1,allowMerge:en.allowMerge??!1},push:!!eT||ed||eu,openPr:!!eT||eu,ciWatchEnabled:eh,enableEvidence:ef,commitEvidence:eg,fast:ek,forkAndPr:eT,commitSpecs:eF,rebaseBeforeBranch:eL,injectSkills:ez,...eN?{pending:eN}:{},...eB?{agentType:eB}:{},...eA?{model:eA}:{},...ew?{parentId:ew}:{},...A?{applicationId:A}:{},sessionId:eH.current}),e1())},[es,eo,en,eI,Q,o,ed,eu,ef,eh,eg,ek,eT,eF,eL,ez,eN,eB,eA,ew,A,V,e1]),tt=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();el(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:eH.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));el(t=>t.filter(t=>t.id!==e)),eZ(t.error??"Upload failed");return}let a=await r.json();el(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{el(t=>t.filter(t=>t.id!==e)),eZ("Upload failed")}}}catch{}},[]),tr=(0,r.useCallback)(e=>{el(t=>t.filter(t=>t.id!==e))},[]),ta=(0,r.useCallback)((e,t)=>{el(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),ts=(0,r.useRef)(null),ti=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),ts.current?.requestSubmit())},[]),to=(0,r.useCallback)(()=>{eV(!0)},[]),tl=(0,r.useCallback)(()=>{setTimeout(()=>{let e=eX.current?.contains(document.activeElement),t=eX.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eV(!1)},0)},[]),tn=m&&m.length>0,tc=!Q&&!eI,td=!Q&&void 0!==f,tp=[{id:"allowPrd",label:H("createDrawer.prd"),description:H("createDrawer.prdDescription")},{id:"allowPlan",label:H("createDrawer.plan"),description:H("createDrawer.planDescription")},{id:"allowMerge",label:H("createDrawer.merge"),description:H("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:e2,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)(w.DrawerTitle,{children:H("createDrawer.title")})]}),c?(0,t.jsx)(w.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(N.Badge,{variant:"secondary",children:H("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(v.Button,{variant:"outline",onClick:e2,disabled:c,children:H("createDrawer.cancel")}),(0,t.jsx)(v.Button,{type:"submit",form:"create-feature-form",disabled:!es.trim()||c||tc,children:c?H("createDrawer.creating"):H("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(S.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:ts,id:"create-feature-form",onSubmit:te,onKeyDown:ti,className:"flex flex-col gap-4",children:[U?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section","data-locked-by-application":"true",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("p",{className:"text-sm opacity-70","data-testid":"repo-readonly-label","aria-disabled":"true","aria-describedby":"locked-by-application-tooltip",title:H("createDrawer.lockedByApplication"),children:f?.find(e=>e.path===Q)?.name??(Q?Q.split("/").pop():"")??Q})}),(0,t.jsx)(S.TooltipContent,{id:"locked-by-application-tooltip",role:"tooltip",side:"bottom",children:H("createDrawer.lockedByApplication")})]})]}):td?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsx)(J,{repositories:eK,value:eI,onChange:eO,onAddRepository:e=>{e$(t=>[...t,e]),eO(e.path)},disabled:c})]}):Q?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:f?.find(e=>e.path===Q)?.name??Q.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":H("createDrawer.fileDropZone"),"data-drag-over":eG?"true":"false",onDragEnter:e3,onDragLeave:e6,onDragOver:e8,onDrop:e7,className:(0,b.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eG&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(k.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:eX,onFocus:to,onBlur:tl,className:(0,b.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eJ&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(C.Textarea,{id:"feature-description",placeholder:H("createDrawer.featurePlaceholder"),value:es,onChange:e=>ei(e.target.value),onPaste:e9,required:!0,disabled:c,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),eo.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:eo.map(e=>(0,t.jsx)(P.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>tr(e.id),disabled:c,loading:e.loading,notes:e.notes,onNotesChange:t=>ta(e.id,t)},e.id))}),eW?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eW}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(z.AgentModelPicker,{initialAgentType:eB??D??"",initialModel:eA??L??"",mode:"override",onAgentModelChange:(e,t)=>{eR(e),eU(t)},disabled:c,className:"w-55"}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(T.Switch,{id:"pending-mode",checked:eN,onCheckedChange:eD,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(n.Clock,{className:"h-3.5 w-3.5"}),H("createDrawer.pendingMode")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.pendingModeDescription")})]}),(0,t.jsx)("div",{role:"group","aria-label":H("createDrawer.modeGroupLabel"),className:"border-input flex items-center gap-0.5 rounded-md border p-0.5",children:K.map(e=>{let r=$[e],a=r.icon,s=ey===e;return(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button","data-testid":`build-mode-${e}`,"aria-pressed":s,"aria-disabled":c,disabled:c,onClick:()=>eC(e),className:(0,b.cn)("flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors",s?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground","disabled:cursor-not-allowed disabled:opacity-50"),children:[(0,t.jsx)(a,{className:"h-3.5 w-3.5"}),H(r.labelKey)]})}),(0,t.jsx)(S.TooltipContent,{role:"tooltip",side:"bottom",children:H(`${r.labelKey}Description`)})]},e)})}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:tt,disabled:c,"aria-label":H("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(s.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("chat.attachFiles")})]})]})]})]}),tn&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:H("createDrawer.parentFeature")}),(0,t.jsx)(Z,{features:m,value:ew,onChange:ev,disabled:c})]}):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)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.approve")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tp.map(e=>(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:`approve-${e.id}`,size:"sm",checked:en[e.id]??!1,onCheckedChange:t=>ec(r=>({...r,[e.id]:t})),disabled:c||ek&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(k.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:ek&&("allowPrd"===e.id||"allowPlan"===e.id)?H("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tp.every(e=>en[e.id]),t={};for(let r of tp)t[r.id]=!e;ec(t)},disabled:c,className:(0,b.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",tp.every(e=>en[e.id])&&"text-primary"),children:H("createDrawer.all")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("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)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.evidence")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"enable-evidence",size:"sm",checked:ef,onCheckedChange:e=>{eb(e),e||ej(!1)},disabled:c}),(0,t.jsx)(k.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:H("createDrawer.collect")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.collectDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"commit-evidence",size:"sm",checked:eg,onCheckedChange:ej,disabled:c||!ef||!eu&&!eT}),(0,t.jsx)(k.Label,{htmlFor:"commit-evidence",className:(0,b.cn)("cursor-pointer text-xs font-medium",(!ef||!eu&&!eT)&&"opacity-50"),children:H("createDrawer.addToPr")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eu||eT?ef?H("createDrawer.addToPrDescription"):H("createDrawer.requiresEvidence"):H("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.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:H("createDrawer.skills")})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.skillsDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"inject-skills",size:"sm",checked:ez,onCheckedChange:eE,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.Puzzle,{className:"h-3 w-3"}),H("createDrawer.injectSkills")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.injectSkillsDescription")})]})})]}),(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:H("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"push",size:"sm",checked:!!eT||ed||eu,onCheckedChange:e=>{ep(e),!e&&eu&&ex(!1)},disabled:c||eT}),(0,t.jsx)(k.Label,{htmlFor:"push",className:(0,b.cn)("cursor-pointer text-xs font-medium",eT&&"opacity-50"),children:H("createDrawer.push")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eT?"Enabled — contributing to upstream":H("createDrawer.pushDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"open-pr",size:"sm",checked:!!eT||eu,onCheckedChange:e=>{ex(e),e||ej(!1)},disabled:c||eT}),(0,t.jsx)(k.Label,{htmlFor:"open-pr",className:(0,b.cn)("cursor-pointer text-xs font-medium",eT&&"opacity-50"),children:H("createDrawer.pr")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:eT?"Enabled — contributing to upstream":H("createDrawer.prDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"ci-watch",size:"sm",checked:eh,onCheckedChange:em,disabled:c}),(0,t.jsx)(k.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:H("createDrawer.watch")})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"rebase-before-branch",size:"sm",checked:eL,onCheckedChange:eM,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(h.RefreshCw,{className:"h-3 w-3"}),H("createDrawer.sync")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.syncDescription")})]}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"commit-specs",size:"sm",checked:eF,onCheckedChange:eP,disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(u.FileText,{className:"h-3 w-3"}),H("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.commitSpecsDescription")})]}),!eY&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(T.Switch,{id:"fork-and-pr",size:"sm",checked:eT,onCheckedChange:e=>{eS(e),e&&eP(!1)},disabled:c}),(0,t.jsxs)(k.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(p.GitFork,{className:"h-3 w-3"}),H("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:H("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function Z({features:e,value:s,onChange:l,disabled:n}){let{t:c}=(0,a.useTranslation)("web"),[d,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),h=(0,r.useRef)(null),m=e.find(e=>e.id===s),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,g=(0,r.useCallback)(e=>{l(e),p(!1),x("")},[l]);return(0,r.useEffect)(()=>{d?setTimeout(()=>h.current?.focus(),0):x("")},[d]),(0,t.jsxs)(D.Popover,{open:d,onOpenChange:p,children:[(0,t.jsx)(D.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":d,"aria-label":"Parent Feature",disabled:n,"data-testid":"parent-feature-combobox",className:(0,b.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",!m&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:m?`${m.name} (${m.id.slice(0,8)})`:c("createDrawer.selectParent")}),(0,t.jsx)(i.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(D.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)(y.Input,{ref:h,placeholder:c("createDrawer.searchFeatures"),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":"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===s,onClick:()=>g(void 0),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===s&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",void 0!==s&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:c("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:c("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":s===e.id,onClick:()=>g(e.id),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",s===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",s!==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 J({repositories:e,value:s,onChange:l,onAddRepository:n,disabled:u}){let[x,h]=(0,r.useState)(!1),[m,f]=(0,r.useState)(""),[g,j]=(0,r.useState)(!1),[w,v]=(0,r.useState)(null),[C,k]=(0,r.useState)(!1),T=(0,r.useRef)(null),{reactFileManager:S}=(0,A.useFeatureFlags)(),{t:F}=(0,a.useTranslation)("web"),P=e.find(e=>e.path===s),L=m.trim()?e.filter(e=>e.name.toLowerCase().includes(m.toLowerCase())||e.path.toLowerCase().includes(m.toLowerCase())):e,M=(0,r.useCallback)(e=>{l(e),h(!1),f("")},[l]),z=(0,r.useCallback)(async e=>{let t=await (0,U.addRepository)({path:e});if(t.error){v(t.error),j(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};n?.(e),l(e.path),h(!1),f("")}},[n,l]),I=(0,r.useCallback)(async()=>{if(!g){if(S)return void k(!0);j(!0),v(null);try{let e=await (0,B.pickFolder)();if(!e)return void j(!1);await z(e)}catch{k(!0)}finally{j(!1)}}},[g,S,z]),O=(0,r.useCallback)(async e=>{if(k(!1),e){j(!0),v(null);try{await z(e)}catch(e){v(e instanceof Error?e.message:"Failed to add repository")}finally{j(!1)}}},[z]);return(0,r.useEffect)(()=>{x?setTimeout(()=>T.current?.focus(),0):f("")},[x]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(D.Popover,{open:x,onOpenChange:h,children:[(0,t.jsx)(D.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":x,"aria-label":"Repository",disabled:u,"data-testid":"repository-combobox",className:(0,b.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",!P&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:P?P.name:"Select repository..."}),(0,t.jsx)(i.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(D.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)(y.Input,{ref:T,placeholder:F("createDrawer.searchRepositories"),value:m,onChange:e=>f(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===L.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):L.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":s===e.path,onClick:()=>M(e.path),className:(0,b.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",s===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(o.CheckIcon,{className:(0,b.cn)("h-4 w-4 shrink-0",s!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[e.name,e.isFork?(0,t.jsxs)(N.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,t.jsx)(p.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(E.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:I,disabled:g,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:[g?(0,t.jsx)(d.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(c.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)(R.ReactFileManagerDialog,{open:C,onOpenChange:e=>{e||k(!1)},onSelect:O})]})}e.s(["FeatureCreateDrawer",()=>W],630616),e.s([],34562)},373552,e=>{"use strict";var t=e.i(508893);let r=(0,t.createServerReference)("403977b65265c2fd34e4541180b371a5c974c91cf4",t.callServer,void 0,t.findSourceMapURL,"createFeature");e.s(["createFeature",()=>r])}]);