@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
@@ -1,3 +1,3 @@
1
- module.exports=[66763,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(91109),e=a.i(450488),f=a.i(863698),g=a.i(403195),h=a.i(428002),i=a.i(450490),j=a.i(5698),k=a.i(598410),l=a.i(872016),m=a.i(488064),n=a.i(256957),o=a.i(612882),p=a.i(953170),q=a.i(492548),r=a.i(591498),s=a.i(884494),t=a.i(225700);let u=(0,t.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var v=a.i(433511),w=a.i(65298),x=a.i(638019);let y=(0,t.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var z=a.i(385536);a.i(478454);var A=a.i(124255);a.i(149235);var B=a.i(985080),C=a.i(182934),D=a.i(441305),E=a.i(755628),F=a.i(118662),G=a.i(821333),H=a.i(661544),I=a.i(460704);let J="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",K="bg-border/60 mx-1.5 h-5 w-px shrink-0";function L({data:a,initialTab:p}){let q=(0,G.useFeatureFlags)(),r=(0,d.useRouter)(),s=(0,d.usePathname)().startsWith("/repository/"),[t,u]=(0,c.useState)(p??"overview"),[v,w]=(0,c.useState)(!1),x=(0,E.useRepositoryActions)(a.repositoryPath?{repositoryId:a.id,repositoryPath:a.repositoryPath}:null),y=(0,c.useCallback)(()=>{r.push("/control-center")},[r]),I=(0,F.useDeployAction)(a.repositoryPath?{targetId:a.repositoryPath,targetType:"repository",repositoryPath:a.repositoryPath}:null),L="Booting"===I.status||"Ready"===I.status,M=(0,c.useCallback)(()=>{a.repositoryPath&&(navigator.clipboard.writeText(a.repositoryPath),w(!0),setTimeout(()=>w(!1),2e3))},[a.repositoryPath]),N=a.id?`repo-${a.id}`:`repo-${a.name}`;return(0,b.jsx)(A.BaseDrawer,{open:s,onClose:y,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,b.jsxs)(D.Tabs,{value:t,onValueChange:u,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)(D.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,b.jsxs)(D.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(n.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,b.jsxs)(D.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(o.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,b.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:a.name}),a.repositoryPath?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:a.repositoryPath})]}):null]}),a.repositoryPath?(0,b.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,b.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,b.jsxs)(C.TooltipProvider,{delayDuration:300,children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInIde,disabled:x.ideLoading,"aria-label":"Open in IDE",children:x.ideLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(e.Code2,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInShell,disabled:x.shellLoading,"aria-label":"Open terminal",children:x.shellLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(f.Terminal,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openFolder,disabled:x.folderLoading,"aria-label":"Open folder",children:x.folderLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(g.FolderOpen,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:M,"aria-label":"Copy path",children:v?(0,b.jsx)(l.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(k.Copy,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:v?"Copied!":"Copy path"})]})]}),a.id?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.syncMain,disabled:x.syncLoading,"aria-label":"Sync main",children:x.syncLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(h.RefreshCw,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,q.envDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:I.deployLoading||I.stopLoading,onClick:L?I.stop:I.deploy,className:(0,z.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",L?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":L?"Stop dev server":"Start dev server",children:I.deployLoading||I.stopLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):L?(0,b.jsx)(j.Square,{className:"size-4"}):(0,b.jsx)(i.Play,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:L?"Stop dev server":"Start dev server"})]}),L?(0,b.jsx)(B.DeploymentStatusBadge,{status:I.status,url:I.url,targetId:a.repositoryPath}):null]}):null]}),(0,b.jsx)("div",{className:"flex-1"})]})}):null]}),(0,b.jsx)(D.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(P,{data:a,syncError:x.syncError})}),(0,b.jsx)(D.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(H.ChatTab,{featureId:N,worktreePath:a.repositoryPath})})]})})}function M({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function N({children:a,className:c}){return(0,b.jsx)("div",{className:(0,z.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function O({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function P({data:a,syncError:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{if(!a.repositoryPath)return;let b=!1;return h(!0),(0,I.getGitRepoInfo)(a.repositoryPath,8).then(a=>{b||f(a)}).catch(()=>{}).finally(()=>{b||h(!1)}),()=>{b=!0}},[a.repositoryPath]),!a.repositoryPath)return null;let i=e?.workingTree,j=i&&(i.staged>0||i.modified>0||i.untracked>0),k=e?.diffStats;return(0,b.jsxs)("div",{className:"pb-4",children:[g?(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,b.jsx)(N,{children:(0,b.jsxs)(O,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(p.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-sm",children:e.currentBranch??a.branch??"—"})]}),null!=a.behindCount&&a.behindCount>0?(0,b.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[a.behindCount," behind default"]}):null]})}),(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Working Tree",children:j?(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[i.staged>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(y,{className:"size-3.5"})," ",i.staged," staged"]}):null,i.modified>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(w.FileEdit,{className:"size-3.5"})," ",i.modified," modified"]}):null,i.untracked>0?(0,b.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,b.jsx)(x.FilePlus,{className:"size-3.5"})," ",i.untracked," untracked"]}):null]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(l.Check,{className:"size-3.5"})," Clean"]})})}),k?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Uncommitted Changes",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,b.jsxs)("span",{children:[k.filesChanged," file",1!==k.filesChanged?"s":""]}),(0,b.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",k.insertions]}),(0,b.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",k.deletions]})]})})}):null,e.remotes.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Remote",children:e.remotes.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(s.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},a.name))})}):null,e.stashCount>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Stashes",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(v.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),e.stashCount," stash",1!==e.stashCount?"es":""]})})}):null,e.tags.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Tags",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.tags.map(a=>(0,b.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,b.jsx)(u,{className:"text-foreground/30 size-2.5"}),a]},a))})})}):null]}):null,e&&e.commits.length>0?(0,b.jsx)(M,{icon:q.GitCommitHorizontal,title:"Recent Commits",children:(0,b.jsxs)("div",{className:"relative ml-3",children:[(0,b.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),e.commits.map((a,c)=>(0,b.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,b.jsx)("div",{className:(0,z.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===c?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:a.subject}),(0,b.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:a.shortHash})]}),(0,b.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.author}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.relativeDate}),a.branch?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(p.GitBranch,{className:"size-3"}),a.branch]})]}):null]})]})]},a.hash))]})}):null,e&&e.branches.length>1?(0,b.jsx)(M,{icon:p.GitBranch,title:"Branches",children:(0,b.jsx)("div",{className:"flex flex-col",children:[...e.branches].sort((a,b)=>{let c,d,e,f;return a.isCurrent&&!b.isCurrent?-1:!a.isCurrent&&b.isCurrent?1:(c=a.name,/^(main|master)$/.test(c)&&(d=b.name,!/^(main|master)$/.test(d)))?-1:+(e=a.name,!!(!/^(main|master)$/.test(e)&&(f=b.name,/^(main|master)$/.test(f))))}).map(a=>(0,b.jsxs)("div",{className:(0,z.cn)("flex items-center justify-between rounded px-2 py-1.5",a.isCurrent&&"bg-muted/60"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[a.isCurrent?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(a.name)?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,b.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,b.jsx)("code",{className:"font-mono text-[13px]",children:a.name}),a.isCurrent?(0,b.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,b.jsx)("span",{className:"text-foreground/40 text-xs",children:a.lastCommitDate})]},a.name))})}):null,d?(0,b.jsx)(M,{icon:r.AlertTriangle,title:"Issues",children:(0,b.jsx)(N,{className:"bg-destructive/5 border-transparent",children:(0,b.jsx)("p",{className:"text-destructive text-sm",children:d})})}):null]})}a.s(["RepositoryDrawerClient",()=>L],66763)}];
1
+ module.exports=[66763,a=>{"use strict";var b=a.i(556365),c=a.i(944592),d=a.i(91109),e=a.i(450488),f=a.i(863698),g=a.i(403195),h=a.i(428002),i=a.i(450490),j=a.i(5698),k=a.i(598410),l=a.i(872016),m=a.i(488064),n=a.i(256957),o=a.i(612882),p=a.i(953170),q=a.i(492548),r=a.i(591498),s=a.i(884494),t=a.i(225700);let u=(0,t.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var v=a.i(433511),w=a.i(65298),x=a.i(638019);let y=(0,t.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var z=a.i(385536);a.i(478454);var A=a.i(124255);a.i(149235);var B=a.i(985080),C=a.i(182934),D=a.i(441305),E=a.i(755628),F=a.i(118662),G=a.i(821333),H=a.i(661544),I=a.i(225862);let J="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",K="bg-border/60 mx-1.5 h-5 w-px shrink-0";function L({data:a,initialTab:p}){let q=(0,G.useFeatureFlags)(),r=(0,d.useRouter)(),s=(0,d.usePathname)().startsWith("/repository/"),[t,u]=(0,c.useState)(p??"overview"),[v,w]=(0,c.useState)(!1),x=(0,E.useRepositoryActions)(a.repositoryPath?{repositoryId:a.id,repositoryPath:a.repositoryPath}:null),y=(0,c.useCallback)(()=>{r.push("/control-center")},[r]),I=(0,F.useDeployAction)(a.repositoryPath?{targetId:a.repositoryPath,targetType:"repository",repositoryPath:a.repositoryPath}:null),L="Booting"===I.status||"Ready"===I.status,M=(0,c.useCallback)(()=>{a.repositoryPath&&(navigator.clipboard.writeText(a.repositoryPath),w(!0),setTimeout(()=>w(!1),2e3))},[a.repositoryPath]),N=a.id?`repo-${a.id}`:`repo-${a.name}`;return(0,b.jsx)(A.BaseDrawer,{open:s,onClose:y,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,b.jsxs)(D.Tabs,{value:t,onValueChange:u,className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)(D.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,b.jsxs)(D.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(n.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,b.jsxs)(D.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,b.jsx)(o.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,b.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,b.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:a.name}),a.repositoryPath?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,b.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:a.repositoryPath})]}):null]}),a.repositoryPath?(0,b.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,b.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,b.jsxs)(C.TooltipProvider,{delayDuration:300,children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInIde,disabled:x.ideLoading,"aria-label":"Open in IDE",children:x.ideLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(e.Code2,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openInShell,disabled:x.shellLoading,"aria-label":"Open terminal",children:x.shellLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(f.Terminal,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.openFolder,disabled:x.folderLoading,"aria-label":"Open folder",children:x.folderLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(g.FolderOpen,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:M,"aria-label":"Copy path",children:v?(0,b.jsx)(l.Check,{className:"size-3.5 text-green-500"}):(0,b.jsx)(k.Copy,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:v?"Copied!":"Copy path"})]})]}),a.id?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",className:J,onClick:x.syncMain,disabled:x.syncLoading,"aria-label":"Sync main",children:x.syncLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):(0,b.jsx)(h.RefreshCw,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,q.envDeploy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:K}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",disabled:I.deployLoading||I.stopLoading,onClick:L?I.stop:I.deploy,className:(0,z.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",L?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":L?"Stop dev server":"Start dev server",children:I.deployLoading||I.stopLoading?(0,b.jsx)(m.Loader2,{className:"size-3.5 animate-spin"}):L?(0,b.jsx)(j.Square,{className:"size-4"}):(0,b.jsx)(i.Play,{className:"size-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",className:"text-xs",children:L?"Stop dev server":"Start dev server"})]}),L?(0,b.jsx)(B.DeploymentStatusBadge,{status:I.status,url:I.url,targetId:a.repositoryPath}):null]}):null]}),(0,b.jsx)("div",{className:"flex-1"})]})}):null]}),(0,b.jsx)(D.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,b.jsx)(P,{data:a,syncError:x.syncError})}),(0,b.jsx)(D.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,b.jsx)(H.ChatTab,{featureId:N,worktreePath:a.repositoryPath})})]})})}function M({icon:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,b.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,b.jsx)(a,{className:"size-4 opacity-50"}),c]}),d]})}function N({children:a,className:c}){return(0,b.jsx)("div",{className:(0,z.cn)("bg-muted/60 rounded-md border border-transparent p-3",c),children:a})}function O({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:a}),(0,b.jsx)("span",{className:"text-sm leading-snug",children:c})]})}function P({data:a,syncError:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{if(!a.repositoryPath)return;let b=!1;return h(!0),(0,I.getGitRepoInfo)(a.repositoryPath,8).then(a=>{b||f(a)}).catch(()=>{}).finally(()=>{b||h(!1)}),()=>{b=!0}},[a.repositoryPath]),!a.repositoryPath)return null;let i=e?.workingTree,j=i&&(i.staged>0||i.modified>0||i.untracked>0),k=e?.diffStats;return(0,b.jsxs)("div",{className:"pb-4",children:[g?(0,b.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,b.jsx)(m.Loader2,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,e?(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,b.jsx)(N,{children:(0,b.jsxs)(O,{label:"Branch",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(p.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("code",{className:"font-mono text-sm",children:e.currentBranch??a.branch??"—"})]}),null!=a.behindCount&&a.behindCount>0?(0,b.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[a.behindCount," behind default"]}):null]})}),(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Working Tree",children:j?(0,b.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[i.staged>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(y,{className:"size-3.5"})," ",i.staged," staged"]}):null,i.modified>0?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,b.jsx)(w.FileEdit,{className:"size-3.5"})," ",i.modified," modified"]}):null,i.untracked>0?(0,b.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,b.jsx)(x.FilePlus,{className:"size-3.5"})," ",i.untracked," untracked"]}):null]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,b.jsx)(l.Check,{className:"size-3.5"})," Clean"]})})}),k?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Uncommitted Changes",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,b.jsxs)("span",{children:[k.filesChanged," file",1!==k.filesChanged?"s":""]}),(0,b.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",k.insertions]}),(0,b.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",k.deletions]})]})})}):null,e.remotes.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Remote",children:e.remotes.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(s.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},a.name))})}):null,e.stashCount>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Stashes",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,b.jsx)(v.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),e.stashCount," stash",1!==e.stashCount?"es":""]})})}):null,e.tags.length>0?(0,b.jsx)(N,{children:(0,b.jsx)(O,{label:"Tags",children:(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.tags.map(a=>(0,b.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,b.jsx)(u,{className:"text-foreground/30 size-2.5"}),a]},a))})})}):null]}):null,e&&e.commits.length>0?(0,b.jsx)(M,{icon:q.GitCommitHorizontal,title:"Recent Commits",children:(0,b.jsxs)("div",{className:"relative ml-3",children:[(0,b.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),e.commits.map((a,c)=>(0,b.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,b.jsx)("div",{className:(0,z.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===c?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:a.subject}),(0,b.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:a.shortHash})]}),(0,b.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.author}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)("span",{children:a.relativeDate}),a.branch?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{children:"·"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(p.GitBranch,{className:"size-3"}),a.branch]})]}):null]})]})]},a.hash))]})}):null,e&&e.branches.length>1?(0,b.jsx)(M,{icon:p.GitBranch,title:"Branches",children:(0,b.jsx)("div",{className:"flex flex-col",children:[...e.branches].sort((a,b)=>{let c,d,e,f;return a.isCurrent&&!b.isCurrent?-1:!a.isCurrent&&b.isCurrent?1:(c=a.name,/^(main|master)$/.test(c)&&(d=b.name,!/^(main|master)$/.test(d)))?-1:+(e=a.name,!!(!/^(main|master)$/.test(e)&&(f=b.name,/^(main|master)$/.test(f))))}).map(a=>(0,b.jsxs)("div",{className:(0,z.cn)("flex items-center justify-between rounded px-2 py-1.5",a.isCurrent&&"bg-muted/60"),children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[a.isCurrent?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(a.name)?(0,b.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,b.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,b.jsx)("code",{className:"font-mono text-[13px]",children:a.name}),a.isCurrent?(0,b.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,b.jsx)("span",{className:"text-foreground/40 text-xs",children:a.lastCommitDate})]},a.name))})}):null,d?(0,b.jsx)(M,{icon:r.AlertTriangle,title:"Issues",children:(0,b.jsx)(N,{className:"bg-destructive/5 border-transparent",children:(0,b.jsx)("p",{className:"text-destructive text-sm",children:d})})}):null]})}a.s(["RepositoryDrawerClient",()=>L],66763)}];
2
2
 
3
3
  //# sourceMappingURL=f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[495072,a=>{"use strict";var b=a.i(237705),c=a.i(996380);async function d(a){if(!a?.trim())return{error:"Application ID is required"};try{let b=(0,c.resolve)("DeleteApplicationUseCase");return await b.execute(a),{}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete application"}}}(0,a.i(701904).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"40af1b8d14947496efa0de09d2e46341cfadd226ac",null),a.s(["deleteApplication",()=>d])},280496,a=>{"use strict";var b=a.i(237705),c=a.i(902157),d=a.i(660526),e=a.i(750227),f=a.i(874533),g=a.i(701904);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40e7ea921079c1a8fe79fc7cfb59743f718c5944f7",null),a.s(["openFolder",()=>i])},93225,941872,609959,879124,839353,529207,a=>{"use strict";var b=a.i(237705),c=a.i(996380),d=a.i(701904);async function e(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,c.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40eb53de65273a529e251542555f94321ea9c2fcaf",null),a.s(["syncRepository",()=>e],93225);var f=a.i(633244);async function g(){try{return(0,f.getSettings)().onboardingComplete}catch{return!1}}async function h(){return(0,c.resolve)("CheckAgentAuthUseCase").execute()}(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"002230a65a9a52766f2fac7b9bafe2f0a0ab4ff5f5",null),a.s(["isAgentSetupComplete",()=>g],941872),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"003eb1909cd10ed1e04526145e4a21282e819a745e",null),a.s(["checkAgentAuth",()=>h],609959);var i=a.i(874533),j=a.i(825832);function k(a,b){return new Promise(c=>{try{let d=j.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(a,b,d,(a,b)=>{if(a)return void c({installed:!1,version:null});let d=b.match(/(\d+\.\d+(?:\.\d+)?)/);c({installed:!0,version:d?.[1]??null})})}catch{c({installed:!1,version:null})}})}async function l(){let[a,b,d]=await Promise.all([k("git",["--version"]),k("gh",["--version"]),(async()=>{try{let a=(0,c.resolve)("ListToolsUseCase");return await a.execute()}catch{return[]}})()]),e=d.find(a=>"git"===a.id),f=d.find(a=>"gh"===a.id);return{git:{...a,installCommand:e?.installCommand??null,installUrl:e?.website??"https://git-scm.com"},gh:{...b,installCommand:f?.installCommand??null,installUrl:f?.website??"https://cli.github.com"}}}async function m(a,b){if(!a?.trim())return{success:!1,error:"id is required"};try{let d=(0,c.resolve)("DeleteRepositoryUseCase");return await d.execute(a,{deleteFromDisk:b?.deleteFromDisk===!0}),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}async function n(a){let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);return d?{name:d.name,description:d.description}:null}(0,d.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"00f312436a846d36665ad6519b2a873685e7baa13f",null),a.s(["checkToolStatus",()=>l],879124),(0,d.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"60495f1a3ee94d5d2693e35665a5b94c6c425339ab",null),a.s(["deleteRepository",()=>m],839353),(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"4094d93eeeace2053edf550148c9336dfa0384d465",null),a.s(["getFeatureMetadata",()=>n],529207)},524860,a=>{"use strict";var b=a.i(237705),c=a.i(633244);async function d(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,a.i(701904).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"00f6ec1d2a7dfbfc8efb9811237c95598fd96a4d0a",null),a.s(["getWorkflowDefaults",()=>d])},719720,a=>{"use strict";var b=a.i(237705),c=a.i(996380),d=a.i(701904);let e=new Set(["ADMIN","MAINTAIN","WRITE"]);async function f(a){try{let b=(0,c.resolve)("IGitHubRepositoryService"),d=await b.getViewerPermission(a);return{canPushDirectly:e.has(d)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"40a9bed0961557794854c68543db57f58a5b63635e",null),a.s(["getViewerPermission",()=>f])},172267,a=>{"use strict";var b=a.i(912513),c=a.i(889253),d=a.i(723504),e=a.i(408115),f=a.i(827900),g=a.i(673350),h=a.i(673101),i=a.i(654775),j=a.i(265324),k=a.i(433841),l=a.i(46646),m=a.i(868378),n=a.i(268670),o=a.i(685321),p=a.i(284095),q=a.i(656799),r=a.i(280496),s=a.i(93225),t=a.i(794691),u=a.i(477710),v=a.i(145395),w=a.i(941872),x=a.i(609959),y=a.i(879124),z=a.i(576707),A=a.i(410528),B=a.i(150845),C=a.i(26604),D=a.i(354723),E=a.i(118942),F=a.i(342886),G=a.i(649560),H=a.i(839353),I=a.i(495072),J=a.i(529207),K=a.i(524860),L=a.i(719720),M=a.i(977605);a.s([],377051),a.i(377051),a.s(["0015f0a240c29915a74257d5ff2d7d15b32c6a778d",()=>b.pickFolder,"002230a65a9a52766f2fac7b9bafe2f0a0ab4ff5f5",()=>w.isAgentSetupComplete,"003eb1909cd10ed1e04526145e4a21282e819a745e",()=>x.checkAgentAuth,"00613a83ba2b2619c9ef46303abae5aded26339bc3",()=>i.listGitHubOrganizations,"006ff5a74754817b8a495d7ba26e66c354851f6c99",()=>c.getDefaultAgentAndModel,"00d2c30c2b08e36b014924412d0cd61610cd91c78e",()=>e.checkAllAgentsStatus,"00d43390ab8112b0e6ec134ef3485ab210e36f7842",()=>d.getAllAgentModels,"00f312436a846d36665ad6519b2a873685e7baa13f",()=>y.checkToolStatus,"00f6ec1d2a7dfbfc8efb9811237c95598fd96a4d0a",()=>K.getWorkflowDefaults,"4005923232df16201d86b35c46dbbe719725cbcd26",()=>m.deployApplication,"401846920f6fb739e32233d9d6a6df7945b8621c00",()=>k.deployFeature,"4023e0e62ab6873f251d393a3ac53fce2a7d1e363d",()=>M.createFeature,"403ab98df2cf8db571b47142cd90ab7c7f297fa90f",()=>h.listGitHubRepositories,"4047fcf9280c5bc168edadf9f0c951bc2514b41fe0",()=>D.startFeature,"404b80493cf36c04e22e68ebf8f56c46bf55d904c0",()=>E.stopFeature,"405723722c9eb9b4888b52203cfb121401f0c61a80",()=>t.getDeploymentLogs,"4070f2c934a9ed351d223ad18ae9602cff12614292",()=>C.resumeFeature,"408a28f520d819792447d4b47d9b73a5ddf7296469",()=>l.deployRepository,"4094d93eeeace2053edf550148c9336dfa0384d465",()=>J.getFeatureMetadata,"409ab95b1ec58ad7dd578b018e11d5bd766839f8bc",()=>n.stopDeployment,"40a9bed0961557794854c68543db57f58a5b63635e",()=>L.getViewerPermission,"40ab7fa1f69e2aec8b94563e16d0019f3589ec2f2e",()=>p.openIde,"40af1b8d14947496efa0de09d2e46341cfadd226ac",()=>I.deleteApplication,"40b95792d8bb0de2aa9914ff42b671ff42b87c24ba",()=>q.openShell,"40ba17f62f174f4f88aa0ea4a373db347247ae1171",()=>u.createProjectAndFeature,"40c4d25fb30555d92bf75dd650e2cce9b8be92dc0b",()=>z.createProjectFolder,"40c64b253cb9310f09f151401d5eb06957db761efa",()=>F.unarchiveFeature,"40d0ac4c8ca5c179014f909f203d903942417295df",()=>A.archiveFeature,"40d4837169557e75f0be6d0f89f7fea0ff41eb89fc",()=>G.addRepository,"40e011f8f2f54f36460ff5310dd49178590a992d44",()=>j.importGitHubRepository,"40e7ea921079c1a8fe79fc7cfb59743f718c5944f7",()=>r.openFolder,"40eb53de65273a529e251542555f94321ea9c2fcaf",()=>s.syncRepository,"40ed3ea24841c9c4280513ab004dcdbce3d545bcdb",()=>o.getDeploymentStatus,"40f744f8f8785a86cc8dc9487da8d64ca353d264af",()=>v.createApplication,"40fcb38a7daafc835826043ee30ef771eae2a2f635",()=>g.globalSearch,"60036293085b1751ff35875b7762b2353bb09757b5",()=>f.updateAgentAndModel,"60495f1a3ee94d5d2693e35665a5b94c6c425339ab",()=>H.deleteRepository,"783175472a45c2823bb1c4751b36e777308131d27d",()=>B.deleteFeature],172267)}];
1
+ module.exports=[495072,a=>{"use strict";var b=a.i(237705),c=a.i(996380);async function d(a){if(!a?.trim())return{error:"Application ID is required"};try{let b=(0,c.resolve)("DeleteApplicationUseCase");return await b.execute(a),{}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete application"}}}(0,a.i(701904).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"400601cc704fc3a542db95c4219b7261168cbe675d",null),a.s(["deleteApplication",()=>d])},280496,a=>{"use strict";var b=a.i(237705),c=a.i(902157),d=a.i(660526),e=a.i(750227),f=a.i(874533),g=a.i(701904);let h={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function i(a){if(!a||!(0,e.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return{success:!1,error:"Directory not found"};let b=h[(0,d.platform)()];if(!b)return{success:!1,error:`Unsupported platform: ${(0,d.platform)()}`};let g=(0,e.normalize)(a),i=(0,f.spawn)(b.cmd,b.args(g),{detached:!0,stdio:"ignore"});return i.on("error",()=>void 0),i.unref(),{success:!0,path:a}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40024b9babaf0ccba2c9644e1719947f9662db82da",null),a.s(["openFolder",()=>i])},93225,941872,609959,879124,839353,529207,a=>{"use strict";var b=a.i(237705),c=a.i(996380),d=a.i(701904);async function e(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,c.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"403bcc64cd5c7afe5cb7933130b5d71e9cb6913d44",null),a.s(["syncRepository",()=>e],93225);var f=a.i(633244);async function g(){try{return(0,f.getSettings)().onboardingComplete}catch{return!1}}async function h(){return(0,c.resolve)("CheckAgentAuthUseCase").execute()}(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"000dc696afafd019691d30ebc74c3bb2bf6be80fc9",null),a.s(["isAgentSetupComplete",()=>g],941872),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"00043b20dfa79e7ce6d504a372669a2b7396e4f421",null),a.s(["checkAgentAuth",()=>h],609959);var i=a.i(874533),j=a.i(825832);function k(a,b){return new Promise(c=>{try{let d=j.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(a,b,d,(a,b)=>{if(a)return void c({installed:!1,version:null});let d=b.match(/(\d+\.\d+(?:\.\d+)?)/);c({installed:!0,version:d?.[1]??null})})}catch{c({installed:!1,version:null})}})}async function l(){let[a,b,d]=await Promise.all([k("git",["--version"]),k("gh",["--version"]),(async()=>{try{let a=(0,c.resolve)("ListToolsUseCase");return await a.execute()}catch{return[]}})()]),e=d.find(a=>"git"===a.id),f=d.find(a=>"gh"===a.id);return{git:{...a,installCommand:e?.installCommand??null,installUrl:e?.website??"https://git-scm.com"},gh:{...b,installCommand:f?.installCommand??null,installUrl:f?.website??"https://cli.github.com"}}}async function m(a,b){if(!a?.trim())return{success:!1,error:"id is required"};try{let d=(0,c.resolve)("DeleteRepositoryUseCase");return await d.execute(a,{deleteFromDisk:b?.deleteFromDisk===!0}),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}async function n(a){let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);return d?{name:d.name,description:d.description}:null}(0,d.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"00fd3bb249b5c2f4771f7eac594bf5656eaf959cdb",null),a.s(["checkToolStatus",()=>l],879124),(0,d.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"608cb7bed4e740de6ec1034873b198d85e0771cdfb",null),a.s(["deleteRepository",()=>m],839353),(0,d.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"40127b07baac3bb5494e3d8ad7b721b35a467f4a93",null),a.s(["getFeatureMetadata",()=>n],529207)},524860,a=>{"use strict";var b=a.i(237705),c=a.i(633244);async function d(){let{workflow:a}=(0,c.getSettings)();return{approvalGates:{allowPrd:a.approvalGateDefaults.allowPrd,allowPlan:a.approvalGateDefaults.allowPlan,allowMerge:a.approvalGateDefaults.allowMerge},push:a.approvalGateDefaults.pushOnImplementationComplete,openPr:a.openPrOnImplementationComplete,ciWatchEnabled:a.ciWatchEnabled,enableEvidence:a.enableEvidence,commitEvidence:a.commitEvidence,fast:a.defaultFastMode,injectSkills:a.skillInjection?.enabled??!1}}(0,a.i(701904).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"00158eeb6daaf8deb2a1c84e06a9dde728368bfbd7",null),a.s(["getWorkflowDefaults",()=>d])},719720,a=>{"use strict";var b=a.i(237705),c=a.i(996380),d=a.i(701904);let e=new Set(["ADMIN","MAINTAIN","WRITE"]);async function f(a){try{let b=(0,c.resolve)("IGitHubRepositoryService"),d=await b.getViewerPermission(a);return{canPushDirectly:e.has(d)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"40b7b82f66bd9e710a727e7544c2fb50fda2cf3008",null),a.s(["getViewerPermission",()=>f])},172267,a=>{"use strict";var b=a.i(912513),c=a.i(889253),d=a.i(723504),e=a.i(408115),f=a.i(827900),g=a.i(673350),h=a.i(673101),i=a.i(654775),j=a.i(265324),k=a.i(433841),l=a.i(46646),m=a.i(868378),n=a.i(268670),o=a.i(685321),p=a.i(284095),q=a.i(656799),r=a.i(280496),s=a.i(93225),t=a.i(794691),u=a.i(477710),v=a.i(145395),w=a.i(941872),x=a.i(609959),y=a.i(879124),z=a.i(576707),A=a.i(410528),B=a.i(150845),C=a.i(26604),D=a.i(354723),E=a.i(118942),F=a.i(342886),G=a.i(649560),H=a.i(839353),I=a.i(495072),J=a.i(529207),K=a.i(524860),L=a.i(719720),M=a.i(977605);a.s([],377051),a.i(377051),a.s(["00043b20dfa79e7ce6d504a372669a2b7396e4f421",()=>x.checkAgentAuth,"000dc696afafd019691d30ebc74c3bb2bf6be80fc9",()=>w.isAgentSetupComplete,"00158eeb6daaf8deb2a1c84e06a9dde728368bfbd7",()=>K.getWorkflowDefaults,"00c270c7a6f9c21fabe7b7271a4bf75d5cef02d22a",()=>c.getDefaultAgentAndModel,"00c38b234d35460bb11ea6a1b0fff1c22e01c08873",()=>e.checkAllAgentsStatus,"00c4af7e37cefa35ac7db65fa9b45995caf677a597",()=>i.listGitHubOrganizations,"00c6d708f17ef9dc5f3443dc4d3b3f3756c20b1392",()=>d.getAllAgentModels,"00e58a33ab1b838c8207f1b7dbe831d7a7b8cd3330",()=>b.pickFolder,"00fd3bb249b5c2f4771f7eac594bf5656eaf959cdb",()=>y.checkToolStatus,"40024b9babaf0ccba2c9644e1719947f9662db82da",()=>r.openFolder,"400601cc704fc3a542db95c4219b7261168cbe675d",()=>I.deleteApplication,"40127b07baac3bb5494e3d8ad7b721b35a467f4a93",()=>J.getFeatureMetadata,"4015ea81e1b2a02fe57f374a012b37e2cd322146f1",()=>g.globalSearch,"402a545f24583952d99d18566abf474dd10d07741b",()=>o.getDeploymentStatus,"402a7da73158b6bd6c8fb8ab5b0344dc0e0f08e228",()=>u.createProjectAndFeature,"402b7881a750d5c7c7125153b65fdd64c555ddcdc2",()=>v.createApplication,"403977b65265c2fd34e4541180b371a5c974c91cf4",()=>M.createFeature,"403a844cbb36e5d50051fe552f050ed35a8b88f317",()=>l.deployRepository,"403bcc64cd5c7afe5cb7933130b5d71e9cb6913d44",()=>s.syncRepository,"403c93928208c54fe25784ff60dcb073f25d1055c1",()=>n.stopDeployment,"4047cfaa45cd7417712356735bfbb78f93a103592a",()=>F.unarchiveFeature,"40559cc32878be443a5d902e563fa65ac29566c575",()=>m.deployApplication,"405f5f5259eaed6742d1a59f416d4319ea63f3bb3d",()=>j.importGitHubRepository,"405f73e1d0740c127aafceadc63304676969dbb19a",()=>A.archiveFeature,"406f6bfbd22a176bf6d0bca648d1bd1ef29efb8c31",()=>p.openIde,"4093cfae5c300fc17a16104784825641972f80a2c2",()=>E.stopFeature,"40a8e46a1833838a96e4b3f97741ab37054dc3a415",()=>G.addRepository,"40aa1efa0fed8941c16c9537ba0c5d988cf13fecaf",()=>k.deployFeature,"40b195fc3bd3d0b6f99d9ba0ce3b624b5201e8e478",()=>D.startFeature,"40b7b82f66bd9e710a727e7544c2fb50fda2cf3008",()=>L.getViewerPermission,"40cede021cd5c33e6bf9d5871c23ea5e73f6809b4b",()=>q.openShell,"40d1082c73e97a2c5f99ef11d815cefe59a26e8998",()=>h.listGitHubRepositories,"40da762c4b34966ae0ac466fdc38dd417bb5f12247",()=>z.createProjectFolder,"40e827f64795e580b75e126ddfefa3a9a722da877c",()=>t.getDeploymentLogs,"40ef132579c95dc894986b34b75cb89dd65b39da86",()=>C.resumeFeature,"608cb7bed4e740de6ec1034873b198d85e0771cdfb",()=>H.deleteRepository,"60afd0d4fa2a6638646f7d23dc6c8673fd27a69207",()=>f.updateAgentAndModel,"782094d73ba803f25ee4b483796e8b0625c3c6564f",()=>B.deleteFeature],172267)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_0e291f0b._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/delete-application.ts","../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/sync-repository.ts","../../../../../../../src/presentation/web/app/actions/agent-setup-flag.ts","../../../../../../../src/presentation/web/app/actions/check-agent-auth.ts","../../../../../../../src/presentation/web/app/actions/check-tool-status.ts","../../../../../../../src/presentation/web/app/actions/delete-repository.ts","../../../../../../../src/presentation/web/app/actions/get-feature-metadata.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteApplicationUseCase } from '@shepai/core/application/use-cases/applications/delete-application.use-case';\n\nexport async function deleteApplication(id: string): Promise<{ error?: string }> {\n if (!id?.trim()) {\n return { error: 'Application ID is required' };\n }\n\n try {\n const useCase = resolve<DeleteApplicationUseCase>('DeleteApplicationUseCase');\n await useCase.execute(id);\n return {};\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete application';\n return { error: message };\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { SyncRepositoryMainUseCase } from '@shepai/core/application/use-cases/repositories/sync-repository-main.use-case';\n\nexport async function syncRepository(\n repositoryId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'Repository id is required' };\n }\n\n try {\n const useCase = resolve<SyncRepositoryMainUseCase>('SyncRepositoryMainUseCase');\n await useCase.execute(repositoryId);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to sync repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\n/**\n * Check whether onboarding has been completed.\n * Delegates to the in-memory settings singleton (zero DB overhead).\n */\nexport async function isAgentSetupComplete(): Promise<boolean> {\n try {\n return getSettings().onboardingComplete;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CheckAgentAuthUseCase } from '@shepai/core/application/use-cases/agents/check-agent-auth.use-case';\n\n/**\n * Result shape for the agent auth checklist on the onboarding empty state.\n * Matches CheckAgentAuthResult from the use case 1:1 — kept locally so the\n * web type stays serializable through the Server Actions boundary.\n */\nexport interface AgentAuthStatus {\n agentType: string;\n /** Whether the CLI tool binary is installed */\n installed: boolean;\n /** Whether credentials / auth appear valid */\n authenticated: boolean;\n /** Human-readable label for the agent */\n label: string;\n /** CLI binary name (e.g. \"claude\", \"gemini\") */\n binaryName: string | null;\n /** Shell command to install the tool (e.g. \"npm install -g @anthropic-ai/claude-code\") */\n installCommand: string | null;\n /** Instructions to authenticate if not authenticated */\n authCommand: string | null;\n}\n\n/**\n * Thin server-action wrapper around CheckAgentAuthUseCase. All agent-type\n * mapping, tool lookup, and platform credential detection live in:\n *\n * packages/core/src/application/use-cases/agents/check-agent-auth.use-case.ts\n * packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.ts\n */\nexport async function checkAgentAuth(): Promise<AgentAuthStatus> {\n const useCase = resolve<CheckAgentAuthUseCase>('CheckAgentAuthUseCase');\n return useCase.execute();\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { IS_WINDOWS } from '@shepai/core/infrastructure/platform';\nimport { resolve } from '@/lib/server-container';\nimport type { ListToolsUseCase } from '@shepai/core/application/use-cases/tools/list-tools.use-case';\n\nexport interface ToolStatusEntry {\n installed: boolean;\n version: string | null;\n /** Platform-specific install command from tool JSON metadata */\n installCommand: string | null;\n /** Documentation/website URL */\n installUrl: string | null;\n}\n\nexport interface ToolStatusResult {\n git: ToolStatusEntry;\n gh: ToolStatusEntry;\n}\n\nfunction getVersion(\n command: string,\n args: string[]\n): Promise<{ installed: boolean; version: string | null }> {\n return new Promise((resolve) => {\n try {\n const opts = IS_WINDOWS ? { timeout: 5000, windowsHide: true } : { timeout: 5000 };\n execFile(command, args, opts, (error, stdout) => {\n if (error) {\n resolve({ installed: false, version: null });\n return;\n }\n // Extract version number from output like \"git version 2.43.0\" or \"gh version 2.40.1\"\n const match = stdout.match(/(\\d+\\.\\d+(?:\\.\\d+)?)/);\n resolve({ installed: true, version: match?.[1] ?? null });\n });\n } catch {\n resolve({ installed: false, version: null });\n }\n });\n}\n\nexport async function checkToolStatus(): Promise<ToolStatusResult> {\n // Run version checks and tool metadata lookup in parallel\n const [gitVersion, ghVersion, tools] = await Promise.all([\n getVersion('git', ['--version']),\n getVersion('gh', ['--version']),\n (async () => {\n try {\n const useCase = resolve<ListToolsUseCase>('ListToolsUseCase');\n return await useCase.execute();\n } catch {\n return [];\n }\n })(),\n ]);\n\n const gitTool = tools.find((t) => t.id === 'git');\n const ghTool = tools.find((t) => t.id === 'gh');\n\n return {\n git: {\n ...gitVersion,\n installCommand: gitTool?.installCommand ?? null,\n installUrl: gitTool?.website ?? 'https://git-scm.com',\n },\n gh: {\n ...ghVersion,\n installCommand: ghTool?.installCommand ?? null,\n installUrl: ghTool?.website ?? 'https://cli.github.com',\n },\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/delete-repository.use-case';\n\nexport interface DeleteRepositoryActionOptions {\n deleteFromDisk?: boolean;\n}\n\nexport async function deleteRepository(\n repositoryId: string,\n options?: DeleteRepositoryActionOptions\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'id is required' };\n }\n\n try {\n const useCase = resolve<DeleteRepositoryUseCase>('DeleteRepositoryUseCase');\n await useCase.execute(repositoryId, { deleteFromDisk: options?.deleteFromDisk === true });\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\n/**\n * Lightweight server action to fetch a single feature's name and description.\n * Used by the SSE effect to update node metadata after AI metadata generation\n * without a full graph reconcile (which can overwrite SSE-driven state).\n */\nexport async function getFeatureMetadata(\n featureId: string\n): Promise<{ name: string; description: string } | null> {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n return { name: feature.name, description: feature.description };\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n injectSkills: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n injectSkills: workflow.skillInjection?.enabled ?? false,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","export {pickFolder as '0015f0a240c29915a74257d5ff2d7d15b32c6a778d'} from 'ACTIONS_MODULE0'\nexport {getDefaultAgentAndModel as '006ff5a74754817b8a495d7ba26e66c354851f6c99'} from 'ACTIONS_MODULE1'\nexport {getAllAgentModels as '00d43390ab8112b0e6ec134ef3485ab210e36f7842'} from 'ACTIONS_MODULE2'\nexport {checkAllAgentsStatus as '00d2c30c2b08e36b014924412d0cd61610cd91c78e'} from 'ACTIONS_MODULE3'\nexport {updateAgentAndModel as '60036293085b1751ff35875b7762b2353bb09757b5'} from 'ACTIONS_MODULE4'\nexport {globalSearch as '40fcb38a7daafc835826043ee30ef771eae2a2f635'} from 'ACTIONS_MODULE5'\nexport {listGitHubRepositories as '403ab98df2cf8db571b47142cd90ab7c7f297fa90f'} from 'ACTIONS_MODULE6'\nexport {listGitHubOrganizations as '00613a83ba2b2619c9ef46303abae5aded26339bc3'} from 'ACTIONS_MODULE7'\nexport {importGitHubRepository as '40e011f8f2f54f36460ff5310dd49178590a992d44'} from 'ACTIONS_MODULE8'\nexport {deployFeature as '401846920f6fb739e32233d9d6a6df7945b8621c00'} from 'ACTIONS_MODULE9'\nexport {deployRepository as '408a28f520d819792447d4b47d9b73a5ddf7296469'} from 'ACTIONS_MODULE10'\nexport {deployApplication as '4005923232df16201d86b35c46dbbe719725cbcd26'} from 'ACTIONS_MODULE11'\nexport {stopDeployment as '409ab95b1ec58ad7dd578b018e11d5bd766839f8bc'} from 'ACTIONS_MODULE12'\nexport {getDeploymentStatus as '40ed3ea24841c9c4280513ab004dcdbce3d545bcdb'} from 'ACTIONS_MODULE13'\nexport {openIde as '40ab7fa1f69e2aec8b94563e16d0019f3589ec2f2e'} from 'ACTIONS_MODULE14'\nexport {openShell as '40b95792d8bb0de2aa9914ff42b671ff42b87c24ba'} from 'ACTIONS_MODULE15'\nexport {openFolder as '40e7ea921079c1a8fe79fc7cfb59743f718c5944f7'} from 'ACTIONS_MODULE16'\nexport {syncRepository as '40eb53de65273a529e251542555f94321ea9c2fcaf'} from 'ACTIONS_MODULE17'\nexport {getDeploymentLogs as '405723722c9eb9b4888b52203cfb121401f0c61a80'} from 'ACTIONS_MODULE18'\nexport {createProjectAndFeature as '40ba17f62f174f4f88aa0ea4a373db347247ae1171'} from 'ACTIONS_MODULE19'\nexport {createApplication as '40f744f8f8785a86cc8dc9487da8d64ca353d264af'} from 'ACTIONS_MODULE20'\nexport {isAgentSetupComplete as '002230a65a9a52766f2fac7b9bafe2f0a0ab4ff5f5'} from 'ACTIONS_MODULE21'\nexport {checkAgentAuth as '003eb1909cd10ed1e04526145e4a21282e819a745e'} from 'ACTIONS_MODULE22'\nexport {checkToolStatus as '00f312436a846d36665ad6519b2a873685e7baa13f'} from 'ACTIONS_MODULE23'\nexport {createProjectFolder as '40c4d25fb30555d92bf75dd650e2cce9b8be92dc0b'} from 'ACTIONS_MODULE24'\nexport {archiveFeature as '40d0ac4c8ca5c179014f909f203d903942417295df'} from 'ACTIONS_MODULE25'\nexport {deleteFeature as '783175472a45c2823bb1c4751b36e777308131d27d'} from 'ACTIONS_MODULE26'\nexport {resumeFeature as '4070f2c934a9ed351d223ad18ae9602cff12614292'} from 'ACTIONS_MODULE27'\nexport {startFeature as '4047fcf9280c5bc168edadf9f0c951bc2514b41fe0'} from 'ACTIONS_MODULE28'\nexport {stopFeature as '404b80493cf36c04e22e68ebf8f56c46bf55d904c0'} from 'ACTIONS_MODULE29'\nexport {unarchiveFeature as '40c64b253cb9310f09f151401d5eb06957db761efa'} from 'ACTIONS_MODULE30'\nexport {addRepository as '40d4837169557e75f0be6d0f89f7fea0ff41eb89fc'} from 'ACTIONS_MODULE31'\nexport {deleteRepository as '60495f1a3ee94d5d2693e35665a5b94c6c425339ab'} from 'ACTIONS_MODULE32'\nexport {deleteApplication as '40af1b8d14947496efa0de09d2e46341cfadd226ac'} from 'ACTIONS_MODULE33'\nexport {getFeatureMetadata as '4094d93eeeace2053edf550148c9336dfa0384d465'} from 'ACTIONS_MODULE34'\nexport {getWorkflowDefaults as '00f6ec1d2a7dfbfc8efb9811237c95598fd96a4d0a'} from 'ACTIONS_MODULE35'\nexport {getViewerPermission as '40a9bed0961557794854c68543db57f58a5b63635e'} from 'ACTIONS_MODULE36'\nexport {createFeature as '4023e0e62ab6873f251d393a3ac53fce2a7d1e363d'} from 'ACTIONS_MODULE37'\nexport {getViewerPermission as '40a9bed0961557794854c68543db57f58a5b63635e'} from 'ACTIONS_MODULE36'\n"],"names":[],"mappings":"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,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/delete-application.ts","../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/sync-repository.ts","../../../../../../../src/presentation/web/app/actions/agent-setup-flag.ts","../../../../../../../src/presentation/web/app/actions/check-agent-auth.ts","../../../../../../../src/presentation/web/app/actions/check-tool-status.ts","../../../../../../../src/presentation/web/app/actions/delete-repository.ts","../../../../../../../src/presentation/web/app/actions/get-feature-metadata.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteApplicationUseCase } from '@shepai/core/application/use-cases/applications/delete-application.use-case';\n\nexport async function deleteApplication(id: string): Promise<{ error?: string }> {\n if (!id?.trim()) {\n return { error: 'Application ID is required' };\n }\n\n try {\n const useCase = resolve<DeleteApplicationUseCase>('DeleteApplicationUseCase');\n await useCase.execute(id);\n return {};\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete application';\n return { error: message };\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute, normalize } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n // Normalize to platform-native separators — explorer.exe on Windows\n // does not understand forward-slash paths and falls back to Documents.\n const nativePath = normalize(repositoryPath);\n\n const child = spawn(entry.cmd, entry.args(nativePath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { SyncRepositoryMainUseCase } from '@shepai/core/application/use-cases/repositories/sync-repository-main.use-case';\n\nexport async function syncRepository(\n repositoryId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'Repository id is required' };\n }\n\n try {\n const useCase = resolve<SyncRepositoryMainUseCase>('SyncRepositoryMainUseCase');\n await useCase.execute(repositoryId);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to sync repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\n/**\n * Check whether onboarding has been completed.\n * Delegates to the in-memory settings singleton (zero DB overhead).\n */\nexport async function isAgentSetupComplete(): Promise<boolean> {\n try {\n return getSettings().onboardingComplete;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CheckAgentAuthUseCase } from '@shepai/core/application/use-cases/agents/check-agent-auth.use-case';\n\n/**\n * Result shape for the agent auth checklist on the onboarding empty state.\n * Matches CheckAgentAuthResult from the use case 1:1 — kept locally so the\n * web type stays serializable through the Server Actions boundary.\n */\nexport interface AgentAuthStatus {\n agentType: string;\n /** Whether the CLI tool binary is installed */\n installed: boolean;\n /** Whether credentials / auth appear valid */\n authenticated: boolean;\n /** Human-readable label for the agent */\n label: string;\n /** CLI binary name (e.g. \"claude\", \"gemini\") */\n binaryName: string | null;\n /** Shell command to install the tool (e.g. \"npm install -g @anthropic-ai/claude-code\") */\n installCommand: string | null;\n /** Instructions to authenticate if not authenticated */\n authCommand: string | null;\n}\n\n/**\n * Thin server-action wrapper around CheckAgentAuthUseCase. All agent-type\n * mapping, tool lookup, and platform credential detection live in:\n *\n * packages/core/src/application/use-cases/agents/check-agent-auth.use-case.ts\n * packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.ts\n */\nexport async function checkAgentAuth(): Promise<AgentAuthStatus> {\n const useCase = resolve<CheckAgentAuthUseCase>('CheckAgentAuthUseCase');\n return useCase.execute();\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { IS_WINDOWS } from '@shepai/core/infrastructure/platform';\nimport { resolve } from '@/lib/server-container';\nimport type { ListToolsUseCase } from '@shepai/core/application/use-cases/tools/list-tools.use-case';\n\nexport interface ToolStatusEntry {\n installed: boolean;\n version: string | null;\n /** Platform-specific install command from tool JSON metadata */\n installCommand: string | null;\n /** Documentation/website URL */\n installUrl: string | null;\n}\n\nexport interface ToolStatusResult {\n git: ToolStatusEntry;\n gh: ToolStatusEntry;\n}\n\nfunction getVersion(\n command: string,\n args: string[]\n): Promise<{ installed: boolean; version: string | null }> {\n return new Promise((resolve) => {\n try {\n const opts = IS_WINDOWS ? { timeout: 5000, windowsHide: true } : { timeout: 5000 };\n execFile(command, args, opts, (error, stdout) => {\n if (error) {\n resolve({ installed: false, version: null });\n return;\n }\n // Extract version number from output like \"git version 2.43.0\" or \"gh version 2.40.1\"\n const match = stdout.match(/(\\d+\\.\\d+(?:\\.\\d+)?)/);\n resolve({ installed: true, version: match?.[1] ?? null });\n });\n } catch {\n resolve({ installed: false, version: null });\n }\n });\n}\n\nexport async function checkToolStatus(): Promise<ToolStatusResult> {\n // Run version checks and tool metadata lookup in parallel\n const [gitVersion, ghVersion, tools] = await Promise.all([\n getVersion('git', ['--version']),\n getVersion('gh', ['--version']),\n (async () => {\n try {\n const useCase = resolve<ListToolsUseCase>('ListToolsUseCase');\n return await useCase.execute();\n } catch {\n return [];\n }\n })(),\n ]);\n\n const gitTool = tools.find((t) => t.id === 'git');\n const ghTool = tools.find((t) => t.id === 'gh');\n\n return {\n git: {\n ...gitVersion,\n installCommand: gitTool?.installCommand ?? null,\n installUrl: gitTool?.website ?? 'https://git-scm.com',\n },\n gh: {\n ...ghVersion,\n installCommand: ghTool?.installCommand ?? null,\n installUrl: ghTool?.website ?? 'https://cli.github.com',\n },\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/delete-repository.use-case';\n\nexport interface DeleteRepositoryActionOptions {\n deleteFromDisk?: boolean;\n}\n\nexport async function deleteRepository(\n repositoryId: string,\n options?: DeleteRepositoryActionOptions\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'id is required' };\n }\n\n try {\n const useCase = resolve<DeleteRepositoryUseCase>('DeleteRepositoryUseCase');\n await useCase.execute(repositoryId, { deleteFromDisk: options?.deleteFromDisk === true });\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\n/**\n * Lightweight server action to fetch a single feature's name and description.\n * Used by the SSE effect to update node metadata after AI metadata generation\n * without a full graph reconcile (which can overwrite SSE-driven state).\n */\nexport async function getFeatureMetadata(\n featureId: string\n): Promise<{ name: string; description: string } | null> {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n return { name: feature.name, description: feature.description };\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n injectSkills: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n injectSkills: workflow.skillInjection?.enabled ?? false,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","export {pickFolder as '00e58a33ab1b838c8207f1b7dbe831d7a7b8cd3330'} from 'ACTIONS_MODULE0'\nexport {getDefaultAgentAndModel as '00c270c7a6f9c21fabe7b7271a4bf75d5cef02d22a'} from 'ACTIONS_MODULE1'\nexport {getAllAgentModels as '00c6d708f17ef9dc5f3443dc4d3b3f3756c20b1392'} from 'ACTIONS_MODULE2'\nexport {checkAllAgentsStatus as '00c38b234d35460bb11ea6a1b0fff1c22e01c08873'} from 'ACTIONS_MODULE3'\nexport {updateAgentAndModel as '60afd0d4fa2a6638646f7d23dc6c8673fd27a69207'} from 'ACTIONS_MODULE4'\nexport {globalSearch as '4015ea81e1b2a02fe57f374a012b37e2cd322146f1'} from 'ACTIONS_MODULE5'\nexport {listGitHubRepositories as '40d1082c73e97a2c5f99ef11d815cefe59a26e8998'} from 'ACTIONS_MODULE6'\nexport {listGitHubOrganizations as '00c4af7e37cefa35ac7db65fa9b45995caf677a597'} from 'ACTIONS_MODULE7'\nexport {importGitHubRepository as '405f5f5259eaed6742d1a59f416d4319ea63f3bb3d'} from 'ACTIONS_MODULE8'\nexport {deployFeature as '40aa1efa0fed8941c16c9537ba0c5d988cf13fecaf'} from 'ACTIONS_MODULE9'\nexport {deployRepository as '403a844cbb36e5d50051fe552f050ed35a8b88f317'} from 'ACTIONS_MODULE10'\nexport {deployApplication as '40559cc32878be443a5d902e563fa65ac29566c575'} from 'ACTIONS_MODULE11'\nexport {stopDeployment as '403c93928208c54fe25784ff60dcb073f25d1055c1'} from 'ACTIONS_MODULE12'\nexport {getDeploymentStatus as '402a545f24583952d99d18566abf474dd10d07741b'} from 'ACTIONS_MODULE13'\nexport {openIde as '406f6bfbd22a176bf6d0bca648d1bd1ef29efb8c31'} from 'ACTIONS_MODULE14'\nexport {openShell as '40cede021cd5c33e6bf9d5871c23ea5e73f6809b4b'} from 'ACTIONS_MODULE15'\nexport {openFolder as '40024b9babaf0ccba2c9644e1719947f9662db82da'} from 'ACTIONS_MODULE16'\nexport {syncRepository as '403bcc64cd5c7afe5cb7933130b5d71e9cb6913d44'} from 'ACTIONS_MODULE17'\nexport {getDeploymentLogs as '40e827f64795e580b75e126ddfefa3a9a722da877c'} from 'ACTIONS_MODULE18'\nexport {createProjectAndFeature as '402a7da73158b6bd6c8fb8ab5b0344dc0e0f08e228'} from 'ACTIONS_MODULE19'\nexport {createApplication as '402b7881a750d5c7c7125153b65fdd64c555ddcdc2'} from 'ACTIONS_MODULE20'\nexport {isAgentSetupComplete as '000dc696afafd019691d30ebc74c3bb2bf6be80fc9'} from 'ACTIONS_MODULE21'\nexport {checkAgentAuth as '00043b20dfa79e7ce6d504a372669a2b7396e4f421'} from 'ACTIONS_MODULE22'\nexport {checkToolStatus as '00fd3bb249b5c2f4771f7eac594bf5656eaf959cdb'} from 'ACTIONS_MODULE23'\nexport {createProjectFolder as '40da762c4b34966ae0ac466fdc38dd417bb5f12247'} from 'ACTIONS_MODULE24'\nexport {archiveFeature as '405f73e1d0740c127aafceadc63304676969dbb19a'} from 'ACTIONS_MODULE25'\nexport {deleteFeature as '782094d73ba803f25ee4b483796e8b0625c3c6564f'} from 'ACTIONS_MODULE26'\nexport {resumeFeature as '40ef132579c95dc894986b34b75cb89dd65b39da86'} from 'ACTIONS_MODULE27'\nexport {startFeature as '40b195fc3bd3d0b6f99d9ba0ce3b624b5201e8e478'} from 'ACTIONS_MODULE28'\nexport {stopFeature as '4093cfae5c300fc17a16104784825641972f80a2c2'} from 'ACTIONS_MODULE29'\nexport {unarchiveFeature as '4047cfaa45cd7417712356735bfbb78f93a103592a'} from 'ACTIONS_MODULE30'\nexport {addRepository as '40a8e46a1833838a96e4b3f97741ab37054dc3a415'} from 'ACTIONS_MODULE31'\nexport {deleteRepository as '608cb7bed4e740de6ec1034873b198d85e0771cdfb'} from 'ACTIONS_MODULE32'\nexport {deleteApplication as '400601cc704fc3a542db95c4219b7261168cbe675d'} from 'ACTIONS_MODULE33'\nexport {getFeatureMetadata as '40127b07baac3bb5494e3d8ad7b721b35a467f4a93'} from 'ACTIONS_MODULE34'\nexport {getWorkflowDefaults as '00158eeb6daaf8deb2a1c84e06a9dde728368bfbd7'} from 'ACTIONS_MODULE35'\nexport {getViewerPermission as '40b7b82f66bd9e710a727e7544c2fb50fda2cf3008'} from 'ACTIONS_MODULE36'\nexport {createFeature as '403977b65265c2fd34e4541180b371a5c974c91cf4'} from 'ACTIONS_MODULE37'\nexport {getViewerPermission as '40b7b82f66bd9e710a727e7544c2fb50fda2cf3008'} from 'ACTIONS_MODULE36'\n"],"names":[],"mappings":"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,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[716989,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("4023e0e62ab6873f251d393a3ac53fce2a7d1e363d",b.callServer,void 0,b.findSourceMapURL,"createFeature");a.s(["createFeature",()=>c])},609803,382052,a=>{"use strict";var b=a.i(556365),c=a.i(944592);a.i(490370);var d=a.i(224640),e=a.i(945242),f=a.i(14177),g=a.i(110606),h=a.i(103942),i=a.i(346168),j=a.i(142527),k=a.i(488064),l=a.i(673708),m=a.i(162147),n=a.i(167424),o=a.i(428002),p=a.i(882014),q=a.i(69428),r=a.i(385536),s=a.i(219884);a.i(478454);var t=a.i(124255),u=a.i(302824),v=a.i(118948),w=a.i(390920),x=a.i(679620),y=a.i(758860),z=a.i(658339),A=a.i(680646),B=a.i(896867),C=a.i(182934),D=a.i(196213);a.i(200307);var E=a.i(730931),F=a.i(289111);let G=(0,F.createServerReference)("40a9bed0961557794854c68543db57f58a5b63635e",F.callServer,void 0,F.findSourceMapURL,"getViewerPermission");var H=a.i(961781),I=a.i(513126),J=a.i(701377);a.i(421434);var K=a.i(234379),L=a.i(821333),M=a.i(446784),N=a.i(746847),O=a.i(39116);let P=[N.BuildMode.Fast,N.BuildMode.Spec],Q={[N.BuildMode.Application]:{icon:p.LayoutGrid,labelKey:"createDrawer.modeApplication"},[N.BuildMode.Fast]:{icon:h.Zap,labelKey:"createDrawer.modeFast"},[N.BuildMode.Spec]:{icon:q.ClipboardList,labelKey:"createDrawer.modeSpec"}},R=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"]),S={allowPrd:!1,allowPlan:!1,allowMerge:!1};function T({open:a,onClose:f,onSubmit:g,repositoryPath:h,isSubmitting:j=!1,workflowDefaults:k,features:p,repositories:q,initialParentId:w,currentAgentType:A,currentModel:F,initialDescription:I,canPushDirectly:J,initialMode:K,initialApplicationId:L}){let M=void 0!==L,T=M&&!K?N.BuildMode.Spec:K,W=(0,s.useSoundAction)("create"),{t:X}=(0,d.useTranslation)("web"),Y=h&&(M||!q||0===q.length||q.some(a=>a.path===h))?h:"",Z=k?.approvalGates??S,$=k?.push??!1,_=k?.openPr??!1,aa=k?.ciWatchEnabled!==!1,ab=k?.enableEvidence??!1,ac=k?.commitEvidence??!1,ad=T||(k?.fast===!1?N.BuildMode.Spec:N.BuildMode.Fast),[ae,af]=(0,c.useState)(I??"");(0,c.useEffect)(()=>{I&&af(I)},[I]);let[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)({...Z}),[ak,al]=(0,c.useState)($),[am,an]=(0,c.useState)(_),[ao,ap]=(0,c.useState)(k?.ciWatchEnabled!==!1),[aq,ar]=(0,c.useState)(ab),[as,at]=(0,c.useState)(ac),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(ad),ay=aw===N.BuildMode.Fast,[az,aA]=(0,c.useState)(!1),[aB,aC]=(0,c.useState)(!1),[aD,aE]=(0,c.useState)(!0),[aF,aG]=(0,c.useState)(!0),[aH,aI]=(0,c.useState)(k?.injectSkills??!1),[aJ,aK]=(0,c.useState)(void 0),[aL,aM]=(0,c.useState)(void 0),[aN,aO]=(0,c.useState)(Y||void 0),[aP,aQ]=(0,c.useState)(q??[]),[aR,aS]=(0,c.useState)(!1),[aT,aU]=(0,c.useState)(null),[aV,aW]=(0,c.useState)(!1),aX=(0,c.useRef)(crypto.randomUUID()),aY=(0,c.useRef)(0),aZ=(0,c.useRef)(null);(0,c.useEffect)(()=>{k&&(aj({...k.approvalGates}),al(k.push),an(k.openPr),ap(!1!==k.ciWatchEnabled),ar(k.enableEvidence),at(k.commitEvidence),T||ax(!1!==k.fast?N.BuildMode.Fast:N.BuildMode.Spec),aI(k.injectSkills??!1))},[k,T]),(0,c.useEffect)(()=>{aQ(q??[])},[q]),(0,c.useEffect)(()=>{a&&w&&av(w)},[a,w]);let[a$,a_]=(0,c.useState)(J??!1);(0,c.useEffect)(()=>{a_(J??!1)},[J]);let a0=(0,c.useRef)(aN);(0,c.useEffect)(()=>{aN&&aN!==a0.current&&(a0.current=aN,G(aN).then(a=>a_(a.canPushDirectly)).catch(()=>a_(!1)))},[aN]),(0,c.useEffect)(()=>{a$&&(aC(!1),al($),an(_),aE(!0))},[a$,$,_]);let a1=(0,c.useCallback)(()=>{af(""),ah([]),aj({...Z}),al($),an(_),ap(aa),ar(ab),at(ac),av(void 0),aO(Y||void 0),aQ(q??[]),ax(ad),aA(!1),aC(!1),aE(!0),aG(!0),aK(void 0),aM(void 0),aU(null),aY.current=0,aS(!1)},[Z,$,_,ab,aa,ac,ad,Y,q]),a2=""!==ae.trim()||ag.length>0,{attemptClose:a3}=(0,D.useGuardedDrawerClose)({open:a,isDirty:a2,onClose:f,onReset:a1}),a4=(0,c.useCallback)(async a=>{for(let b of(aU(null),a)){if(b.size>0xa00000)return void aU(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!R.has(a))return void aU(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();ah(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aX.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));ah(b=>b.filter(b=>b.id!==a)),aU(b.error??"Upload failed");return}let e=await d.json();ah(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{ah(b=>b.filter(b=>b.id!==a)),aU("Upload failed")}}},[]),a5=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current+=1,1===aY.current&&aS(!0)},[]),a6=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current-=1,0===aY.current&&aS(!1)},[]),a7=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a8=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current=0,aS(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&a4(b)},[a4]),a9=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),a4(c))},[a4]),ba=(0,c.useCallback)(a=>{if(a.preventDefault(),!ae.trim())return;let b=aN??Y;b&&(W.play(),g({description:ae.trim(),attachments:ag.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:ai.allowPrd??!1,allowPlan:ai.allowPlan??!1,allowMerge:ai.allowMerge??!1},push:!!aB||ak||am,openPr:!!aB||am,ciWatchEnabled:ao,enableEvidence:aq,commitEvidence:as,fast:ay,forkAndPr:aB,commitSpecs:aD,rebaseBeforeBranch:aF,injectSkills:aH,...az?{pending:az}:{},...aJ?{agentType:aJ}:{},...aL?{model:aL}:{},...au?{parentId:au}:{},...L?{applicationId:L}:{},sessionId:aX.current}),a1())},[ae,ag,ai,aN,Y,g,ak,am,aq,ao,as,ay,aB,aD,aF,aH,az,aJ,aL,au,L,W,a1]),bb=(0,c.useCallback)(async()=>{try{let a=await (0,O.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();ah(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aX.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));ah(b=>b.filter(b=>b.id!==a)),aU(b.error??"Upload failed");return}let d=await c.json();ah(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{ah(b=>b.filter(b=>b.id!==a)),aU("Upload failed")}}}catch{}},[]),bc=(0,c.useCallback)(a=>{ah(b=>b.filter(b=>b.id!==a))},[]),bd=(0,c.useCallback)((a,b)=>{ah(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),be=(0,c.useRef)(null),bf=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),be.current?.requestSubmit())},[]),bg=(0,c.useCallback)(()=>{aW(!0)},[]),bh=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aZ.current?.contains(document.activeElement),b=aZ.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aW(!1)},0)},[]),bi=p&&p.length>0,bj=!Y&&!aN,bk=!Y&&void 0!==q,bl=[{id:"allowPrd",label:X("createDrawer.prd"),description:X("createDrawer.prdDescription")},{id:"allowPlan",label:X("createDrawer.plan"),description:X("createDrawer.planDescription")},{id:"allowMerge",label:X("createDrawer.merge"),description:X("createDrawer.mergeDescription")}];return(0,b.jsx)(t.BaseDrawer,{open:a,onClose:a3,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(u.DrawerTitle,{children:X("createDrawer.title")})]}),j?(0,b.jsx)(u.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(z.Badge,{variant:"secondary",children:X("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(v.Button,{variant:"outline",onClick:a3,disabled:j,children:X("createDrawer.cancel")}),(0,b.jsx)(v.Button,{type:"submit",form:"create-feature-form",disabled:!ae.trim()||j||bj,children:j?X("createDrawer.creating"):X("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(C.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:be,id:"create-feature-form",onSubmit:ba,onKeyDown:bf,className:"flex flex-col gap-4",children:[M?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section","data-locked-by-application":"true",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("p",{className:"text-sm opacity-70","data-testid":"repo-readonly-label","aria-disabled":"true","aria-describedby":"locked-by-application-tooltip",title:X("createDrawer.lockedByApplication"),children:q?.find(a=>a.path===Y)?.name??(Y?Y.split("/").pop():"")??Y})}),(0,b.jsx)(C.TooltipContent,{id:"locked-by-application-tooltip",role:"tooltip",side:"bottom",children:X("createDrawer.lockedByApplication")})]})]}):bk?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsx)(V,{repositories:aP,value:aN,onChange:aO,onAddRepository:a=>{aQ(b=>[...b,a]),aO(a.path)},disabled:j})]}):Y?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:q?.find(a=>a.path===Y)?.name??Y.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":X("createDrawer.fileDropZone"),"data-drag-over":aR?"true":"false",onDragEnter:a5,onDragLeave:a6,onDragOver:a7,onDrop:a8,className:(0,r.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aR&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(y.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aZ,onFocus:bg,onBlur:bh,className:(0,r.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aV&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(x.Textarea,{id:"feature-description",placeholder:X("createDrawer.featurePlaceholder"),value:ae,onChange:a=>af(a.target.value),onPaste:a9,required:!0,disabled:j,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),ag.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:ag.map(a=>(0,b.jsx)(E.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>bc(a.id),disabled:j,loading:a.loading,notes:a.notes,onNotesChange:b=>bd(a.id,b)},a.id))}),aT?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aT}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(H.AgentModelPicker,{initialAgentType:aJ??A??"",initialModel:aL??F??"",mode:"override",onAgentModelChange:(a,b)=>{aK(a),aM(b)},disabled:j,className:"w-55"}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(B.Switch,{id:"pending-mode",checked:az,onCheckedChange:aA,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(i.Clock,{className:"h-3.5 w-3.5"}),X("createDrawer.pendingMode")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.pendingModeDescription")})]}),(0,b.jsx)("div",{role:"group","aria-label":X("createDrawer.modeGroupLabel"),className:"border-input flex items-center gap-0.5 rounded-md border p-0.5",children:P.map(a=>{let c=Q[a],d=c.icon,e=aw===a;return(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button","data-testid":`build-mode-${a}`,"aria-pressed":e,"aria-disabled":j,disabled:j,onClick:()=>ax(a),className:(0,r.cn)("flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors",e?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground","disabled:cursor-not-allowed disabled:opacity-50"),children:[(0,b.jsx)(d,{className:"h-3.5 w-3.5"}),X(c.labelKey)]})}),(0,b.jsx)(C.TooltipContent,{role:"tooltip",side:"bottom",children:X(`${c.labelKey}Description`)})]},a)})}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:bb,disabled:j,"aria-label":X("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(e.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("chat.attachFiles")})]})]})]})]}),bi&&void 0!==w?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.parentFeature")}),(0,b.jsx)(U,{features:p,value:au,onChange:av,disabled:j})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.approve")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:bl.map(a=>(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:`approve-${a.id}`,size:"sm",checked:ai[a.id]??!1,onCheckedChange:b=>aj(c=>({...c,[a.id]:b})),disabled:j||ay&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(y.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:ay&&("allowPrd"===a.id||"allowPlan"===a.id)?X("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=bl.every(a=>ai[a.id]),b={};for(let c of bl)b[c.id]=!a;aj(b)},disabled:j,className:(0,r.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",bl.every(a=>ai[a.id])&&"text-primary"),children:X("createDrawer.all")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.toggleAllApprovalGates")})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.evidence")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"enable-evidence",size:"sm",checked:aq,onCheckedChange:a=>{ar(a),a||at(!1)},disabled:j}),(0,b.jsx)(y.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:X("createDrawer.collect")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.collectDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"commit-evidence",size:"sm",checked:as,onCheckedChange:at,disabled:j||!aq||!am&&!aB}),(0,b.jsx)(y.Label,{htmlFor:"commit-evidence",className:(0,r.cn)("cursor-pointer text-xs font-medium",(!aq||!am&&!aB)&&"opacity-50"),children:X("createDrawer.addToPr")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:am||aB?aq?X("createDrawer.addToPrDescription"):X("createDrawer.requiresEvidence"):X("createDrawer.requiresPr")})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.skills")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.skillsDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"inject-skills",size:"sm",checked:aH,onCheckedChange:aI,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(n.Puzzle,{className:"h-3 w-3"}),X("createDrawer.injectSkills")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.injectSkillsDescription")})]})})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:X("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"push",size:"sm",checked:!!aB||ak||am,onCheckedChange:a=>{al(a),!a&&am&&an(!1)},disabled:j||aB}),(0,b.jsx)(y.Label,{htmlFor:"push",className:(0,r.cn)("cursor-pointer text-xs font-medium",aB&&"opacity-50"),children:X("createDrawer.push")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:aB?"Enabled — contributing to upstream":X("createDrawer.pushDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"open-pr",size:"sm",checked:!!aB||am,onCheckedChange:a=>{an(a),a||at(!1)},disabled:j||aB}),(0,b.jsx)(y.Label,{htmlFor:"open-pr",className:(0,r.cn)("cursor-pointer text-xs font-medium",aB&&"opacity-50"),children:X("createDrawer.pr")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:aB?"Enabled — contributing to upstream":X("createDrawer.prDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"ci-watch",size:"sm",checked:ao,onCheckedChange:ap,disabled:j}),(0,b.jsx)(y.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:X("createDrawer.watch")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"rebase-before-branch",size:"sm",checked:aF,onCheckedChange:aG,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(o.RefreshCw,{className:"h-3 w-3"}),X("createDrawer.sync")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.syncDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"commit-specs",size:"sm",checked:aD,onCheckedChange:aE,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(m.FileText,{className:"h-3 w-3"}),X("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.commitSpecsDescription")})]}),!a$&&(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"fork-and-pr",size:"sm",checked:aB,onCheckedChange:a=>{aC(a),a&&aE(!1)},disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(l.GitFork,{className:"h-3 w-3"}),X("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function U({features:a,value:e,onChange:h,disabled:i}){let{t:j}=(0,d.useTranslation)("web"),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),o=(0,c.useRef)(null),p=a.find(a=>a.id===e),q=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.id.toLowerCase().includes(m.toLowerCase())):a,s=(0,c.useCallback)(a=>{h(a),l(!1),n("")},[h]);return(0,c.useEffect)(()=>{k?setTimeout(()=>o.current?.focus(),0):n("")},[k]),(0,b.jsxs)(A.Popover,{open:k,onOpenChange:l,children:[(0,b.jsx)(A.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":k,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,r.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,b.jsx)("span",{className:"truncate",children:p?`${p.name} (${p.id.slice(0,8)})`:j("createDrawer.selectParent")}),(0,b.jsx)(f.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(A.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(w.Input,{ref:o,placeholder:j("createDrawer.searchFeatures"),value:m,onChange:a=>n(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===e,onClick:()=>s(void 0),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===e&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",void 0!==e&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:j("createDrawer.noParent")})]}),0===q.length&&m?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:j("createDrawer.noFeaturesFound")}):q.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e===a.id,onClick:()=>s(a.id),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",e===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",e!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function V({repositories:a,value:e,onChange:h,onAddRepository:i,disabled:m}){let[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(""),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[x,y]=(0,c.useState)(!1),B=(0,c.useRef)(null),{reactFileManager:C}=(0,L.useFeatureFlags)(),{t:D}=(0,d.useTranslation)("web"),E=a.find(a=>a.path===e),F=p.trim()?a.filter(a=>a.name.toLowerCase().includes(p.toLowerCase())||a.path.toLowerCase().includes(p.toLowerCase())):a,G=(0,c.useCallback)(a=>{h(a),o(!1),q("")},[h]),H=(0,c.useCallback)(async a=>{let b=await (0,M.addRepository)({path:a});if(b.error){v(b.error),t(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};i?.(a),h(a.path),o(!1),q("")}},[i,h]),N=(0,c.useCallback)(async()=>{if(!s){if(C)return void y(!0);t(!0),v(null);try{let a=await (0,J.pickFolder)();if(!a)return void t(!1);await H(a)}catch{y(!0)}finally{t(!1)}}},[s,C,H]),O=(0,c.useCallback)(async a=>{if(y(!1),a){t(!0),v(null);try{await H(a)}catch(a){v(a instanceof Error?a.message:"Failed to add repository")}finally{t(!1)}}},[H]);return(0,c.useEffect)(()=>{n?setTimeout(()=>B.current?.focus(),0):q("")},[n]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(A.Popover,{open:n,onOpenChange:o,children:[(0,b.jsx)(A.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":n,"aria-label":"Repository",disabled:m,"data-testid":"repository-combobox",className:(0,r.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",!E&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:E?E.name:"Select repository..."}),(0,b.jsx)(f.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(A.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(w.Input,{ref:B,placeholder:D("createDrawer.searchRepositories"),value:p,onChange:a=>q(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===F.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):F.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e===a.path,onClick:()=>G(a.path),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",e===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",e!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[a.name,a.isFork?(0,b.jsxs)(z.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,b.jsx)(l.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(I.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:N,disabled:s,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:[s?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(j.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),u?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:u}):null]})})]}),(0,b.jsx)(K.ReactFileManagerDialog,{open:x,onOpenChange:a=>{a||y(!1)},onSelect:O})]})}a.s(["FeatureCreateDrawer",()=>T],382052),a.s([],609803)}];
1
+ module.exports=[646739,a=>{"use strict";var b=a.i(289111);let c=(0,b.createServerReference)("403977b65265c2fd34e4541180b371a5c974c91cf4",b.callServer,void 0,b.findSourceMapURL,"createFeature");a.s(["createFeature",()=>c])},609803,382052,a=>{"use strict";var b=a.i(556365),c=a.i(944592);a.i(490370);var d=a.i(224640),e=a.i(945242),f=a.i(14177),g=a.i(110606),h=a.i(103942),i=a.i(346168),j=a.i(142527),k=a.i(488064),l=a.i(673708),m=a.i(162147),n=a.i(167424),o=a.i(428002),p=a.i(882014),q=a.i(69428),r=a.i(385536),s=a.i(219884);a.i(478454);var t=a.i(124255),u=a.i(302824),v=a.i(118948),w=a.i(390920),x=a.i(679620),y=a.i(758860),z=a.i(658339),A=a.i(680646),B=a.i(896867),C=a.i(182934),D=a.i(196213);a.i(200307);var E=a.i(730931),F=a.i(289111);let G=(0,F.createServerReference)("40b7b82f66bd9e710a727e7544c2fb50fda2cf3008",F.callServer,void 0,F.findSourceMapURL,"getViewerPermission");var H=a.i(961781),I=a.i(513126),J=a.i(701377);a.i(421434);var K=a.i(234379),L=a.i(821333),M=a.i(628740),N=a.i(746847),O=a.i(39116);let P=[N.BuildMode.Fast,N.BuildMode.Spec],Q={[N.BuildMode.Application]:{icon:p.LayoutGrid,labelKey:"createDrawer.modeApplication"},[N.BuildMode.Fast]:{icon:h.Zap,labelKey:"createDrawer.modeFast"},[N.BuildMode.Spec]:{icon:q.ClipboardList,labelKey:"createDrawer.modeSpec"}},R=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"]),S={allowPrd:!1,allowPlan:!1,allowMerge:!1};function T({open:a,onClose:f,onSubmit:g,repositoryPath:h,isSubmitting:j=!1,workflowDefaults:k,features:p,repositories:q,initialParentId:w,currentAgentType:A,currentModel:F,initialDescription:I,canPushDirectly:J,initialMode:K,initialApplicationId:L}){let M=void 0!==L,T=M&&!K?N.BuildMode.Spec:K,W=(0,s.useSoundAction)("create"),{t:X}=(0,d.useTranslation)("web"),Y=h&&(M||!q||0===q.length||q.some(a=>a.path===h))?h:"",Z=k?.approvalGates??S,$=k?.push??!1,_=k?.openPr??!1,aa=k?.ciWatchEnabled!==!1,ab=k?.enableEvidence??!1,ac=k?.commitEvidence??!1,ad=T||(k?.fast===!1?N.BuildMode.Spec:N.BuildMode.Fast),[ae,af]=(0,c.useState)(I??"");(0,c.useEffect)(()=>{I&&af(I)},[I]);let[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)({...Z}),[ak,al]=(0,c.useState)($),[am,an]=(0,c.useState)(_),[ao,ap]=(0,c.useState)(k?.ciWatchEnabled!==!1),[aq,ar]=(0,c.useState)(ab),[as,at]=(0,c.useState)(ac),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(ad),ay=aw===N.BuildMode.Fast,[az,aA]=(0,c.useState)(!1),[aB,aC]=(0,c.useState)(!1),[aD,aE]=(0,c.useState)(!0),[aF,aG]=(0,c.useState)(!0),[aH,aI]=(0,c.useState)(k?.injectSkills??!1),[aJ,aK]=(0,c.useState)(void 0),[aL,aM]=(0,c.useState)(void 0),[aN,aO]=(0,c.useState)(Y||void 0),[aP,aQ]=(0,c.useState)(q??[]),[aR,aS]=(0,c.useState)(!1),[aT,aU]=(0,c.useState)(null),[aV,aW]=(0,c.useState)(!1),aX=(0,c.useRef)(crypto.randomUUID()),aY=(0,c.useRef)(0),aZ=(0,c.useRef)(null);(0,c.useEffect)(()=>{k&&(aj({...k.approvalGates}),al(k.push),an(k.openPr),ap(!1!==k.ciWatchEnabled),ar(k.enableEvidence),at(k.commitEvidence),T||ax(!1!==k.fast?N.BuildMode.Fast:N.BuildMode.Spec),aI(k.injectSkills??!1))},[k,T]),(0,c.useEffect)(()=>{aQ(q??[])},[q]),(0,c.useEffect)(()=>{a&&w&&av(w)},[a,w]);let[a$,a_]=(0,c.useState)(J??!1);(0,c.useEffect)(()=>{a_(J??!1)},[J]);let a0=(0,c.useRef)(aN);(0,c.useEffect)(()=>{aN&&aN!==a0.current&&(a0.current=aN,G(aN).then(a=>a_(a.canPushDirectly)).catch(()=>a_(!1)))},[aN]),(0,c.useEffect)(()=>{a$&&(aC(!1),al($),an(_),aE(!0))},[a$,$,_]);let a1=(0,c.useCallback)(()=>{af(""),ah([]),aj({...Z}),al($),an(_),ap(aa),ar(ab),at(ac),av(void 0),aO(Y||void 0),aQ(q??[]),ax(ad),aA(!1),aC(!1),aE(!0),aG(!0),aK(void 0),aM(void 0),aU(null),aY.current=0,aS(!1)},[Z,$,_,ab,aa,ac,ad,Y,q]),a2=""!==ae.trim()||ag.length>0,{attemptClose:a3}=(0,D.useGuardedDrawerClose)({open:a,isDirty:a2,onClose:f,onReset:a1}),a4=(0,c.useCallback)(async a=>{for(let b of(aU(null),a)){if(b.size>0xa00000)return void aU(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!R.has(a))return void aU(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();ah(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aX.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));ah(b=>b.filter(b=>b.id!==a)),aU(b.error??"Upload failed");return}let e=await d.json();ah(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{ah(b=>b.filter(b=>b.id!==a)),aU("Upload failed")}}},[]),a5=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current+=1,1===aY.current&&aS(!0)},[]),a6=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current-=1,0===aY.current&&aS(!1)},[]),a7=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a8=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aY.current=0,aS(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&a4(b)},[a4]),a9=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),a4(c))},[a4]),ba=(0,c.useCallback)(a=>{if(a.preventDefault(),!ae.trim())return;let b=aN??Y;b&&(W.play(),g({description:ae.trim(),attachments:ag.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:ai.allowPrd??!1,allowPlan:ai.allowPlan??!1,allowMerge:ai.allowMerge??!1},push:!!aB||ak||am,openPr:!!aB||am,ciWatchEnabled:ao,enableEvidence:aq,commitEvidence:as,fast:ay,forkAndPr:aB,commitSpecs:aD,rebaseBeforeBranch:aF,injectSkills:aH,...az?{pending:az}:{},...aJ?{agentType:aJ}:{},...aL?{model:aL}:{},...au?{parentId:au}:{},...L?{applicationId:L}:{},sessionId:aX.current}),a1())},[ae,ag,ai,aN,Y,g,ak,am,aq,ao,as,ay,aB,aD,aF,aH,az,aJ,aL,au,L,W,a1]),bb=(0,c.useCallback)(async()=>{try{let a=await (0,O.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();ah(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aX.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));ah(b=>b.filter(b=>b.id!==a)),aU(b.error??"Upload failed");return}let d=await c.json();ah(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{ah(b=>b.filter(b=>b.id!==a)),aU("Upload failed")}}}catch{}},[]),bc=(0,c.useCallback)(a=>{ah(b=>b.filter(b=>b.id!==a))},[]),bd=(0,c.useCallback)((a,b)=>{ah(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),be=(0,c.useRef)(null),bf=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),be.current?.requestSubmit())},[]),bg=(0,c.useCallback)(()=>{aW(!0)},[]),bh=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aZ.current?.contains(document.activeElement),b=aZ.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aW(!1)},0)},[]),bi=p&&p.length>0,bj=!Y&&!aN,bk=!Y&&void 0!==q,bl=[{id:"allowPrd",label:X("createDrawer.prd"),description:X("createDrawer.prdDescription")},{id:"allowPlan",label:X("createDrawer.plan"),description:X("createDrawer.planDescription")},{id:"allowMerge",label:X("createDrawer.merge"),description:X("createDrawer.mergeDescription")}];return(0,b.jsx)(t.BaseDrawer,{open:a,onClose:a3,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(u.DrawerTitle,{children:X("createDrawer.title")})]}),j?(0,b.jsx)(u.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(z.Badge,{variant:"secondary",children:X("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(v.Button,{variant:"outline",onClick:a3,disabled:j,children:X("createDrawer.cancel")}),(0,b.jsx)(v.Button,{type:"submit",form:"create-feature-form",disabled:!ae.trim()||j||bj,children:j?X("createDrawer.creating"):X("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(C.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:be,id:"create-feature-form",onSubmit:ba,onKeyDown:bf,className:"flex flex-col gap-4",children:[M?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section","data-locked-by-application":"true",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("p",{className:"text-sm opacity-70","data-testid":"repo-readonly-label","aria-disabled":"true","aria-describedby":"locked-by-application-tooltip",title:X("createDrawer.lockedByApplication"),children:q?.find(a=>a.path===Y)?.name??(Y?Y.split("/").pop():"")??Y})}),(0,b.jsx)(C.TooltipContent,{id:"locked-by-application-tooltip",role:"tooltip",side:"bottom",children:X("createDrawer.lockedByApplication")})]})]}):bk?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsx)(V,{repositories:aP,value:aN,onChange:aO,onAddRepository:a=>{aQ(b=>[...b,a]),aO(a.path)},disabled:j})]}):Y?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(y.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:q?.find(a=>a.path===Y)?.name??Y.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":X("createDrawer.fileDropZone"),"data-drag-over":aR?"true":"false",onDragEnter:a5,onDragLeave:a6,onDragOver:a7,onDrop:a8,className:(0,r.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aR&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(y.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aZ,onFocus:bg,onBlur:bh,className:(0,r.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aV&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(x.Textarea,{id:"feature-description",placeholder:X("createDrawer.featurePlaceholder"),value:ae,onChange:a=>af(a.target.value),onPaste:a9,required:!0,disabled:j,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),ag.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:ag.map(a=>(0,b.jsx)(E.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>bc(a.id),disabled:j,loading:a.loading,notes:a.notes,onNotesChange:b=>bd(a.id,b)},a.id))}),aT?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aT}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(H.AgentModelPicker,{initialAgentType:aJ??A??"",initialModel:aL??F??"",mode:"override",onAgentModelChange:(a,b)=>{aK(a),aM(b)},disabled:j,className:"w-55"}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(B.Switch,{id:"pending-mode",checked:az,onCheckedChange:aA,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(i.Clock,{className:"h-3.5 w-3.5"}),X("createDrawer.pendingMode")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.pendingModeDescription")})]}),(0,b.jsx)("div",{role:"group","aria-label":X("createDrawer.modeGroupLabel"),className:"border-input flex items-center gap-0.5 rounded-md border p-0.5",children:P.map(a=>{let c=Q[a],d=c.icon,e=aw===a;return(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button","data-testid":`build-mode-${a}`,"aria-pressed":e,"aria-disabled":j,disabled:j,onClick:()=>ax(a),className:(0,r.cn)("flex cursor-pointer items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium transition-colors",e?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground","disabled:cursor-not-allowed disabled:opacity-50"),children:[(0,b.jsx)(d,{className:"h-3.5 w-3.5"}),X(c.labelKey)]})}),(0,b.jsx)(C.TooltipContent,{role:"tooltip",side:"bottom",children:X(`${c.labelKey}Description`)})]},a)})}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:bb,disabled:j,"aria-label":X("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(e.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("chat.attachFiles")})]})]})]})]}),bi&&void 0!==w?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:X("createDrawer.parentFeature")}),(0,b.jsx)(U,{features:p,value:au,onChange:av,disabled:j})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.approve")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:bl.map(a=>(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:`approve-${a.id}`,size:"sm",checked:ai[a.id]??!1,onCheckedChange:b=>aj(c=>({...c,[a.id]:b})),disabled:j||ay&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(y.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:ay&&("allowPrd"===a.id||"allowPlan"===a.id)?X("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=bl.every(a=>ai[a.id]),b={};for(let c of bl)b[c.id]=!a;aj(b)},disabled:j,className:(0,r.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",bl.every(a=>ai[a.id])&&"text-primary"),children:X("createDrawer.all")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.toggleAllApprovalGates")})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.evidence")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"enable-evidence",size:"sm",checked:aq,onCheckedChange:a=>{ar(a),a||at(!1)},disabled:j}),(0,b.jsx)(y.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:X("createDrawer.collect")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.collectDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"commit-evidence",size:"sm",checked:as,onCheckedChange:at,disabled:j||!aq||!am&&!aB}),(0,b.jsx)(y.Label,{htmlFor:"commit-evidence",className:(0,r.cn)("cursor-pointer text-xs font-medium",(!aq||!am&&!aB)&&"opacity-50"),children:X("createDrawer.addToPr")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:am||aB?aq?X("createDrawer.addToPrDescription"):X("createDrawer.requiresEvidence"):X("createDrawer.requiresPr")})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:X("createDrawer.skills")})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.skillsDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"inject-skills",size:"sm",checked:aH,onCheckedChange:aI,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(n.Puzzle,{className:"h-3 w-3"}),X("createDrawer.injectSkills")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.injectSkillsDescription")})]})})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:X("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"push",size:"sm",checked:!!aB||ak||am,onCheckedChange:a=>{al(a),!a&&am&&an(!1)},disabled:j||aB}),(0,b.jsx)(y.Label,{htmlFor:"push",className:(0,r.cn)("cursor-pointer text-xs font-medium",aB&&"opacity-50"),children:X("createDrawer.push")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:aB?"Enabled — contributing to upstream":X("createDrawer.pushDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"open-pr",size:"sm",checked:!!aB||am,onCheckedChange:a=>{an(a),a||at(!1)},disabled:j||aB}),(0,b.jsx)(y.Label,{htmlFor:"open-pr",className:(0,r.cn)("cursor-pointer text-xs font-medium",aB&&"opacity-50"),children:X("createDrawer.pr")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:aB?"Enabled — contributing to upstream":X("createDrawer.prDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"ci-watch",size:"sm",checked:ao,onCheckedChange:ap,disabled:j}),(0,b.jsx)(y.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:X("createDrawer.watch")})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"rebase-before-branch",size:"sm",checked:aF,onCheckedChange:aG,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(o.RefreshCw,{className:"h-3 w-3"}),X("createDrawer.sync")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.syncDescription")})]}),(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"commit-specs",size:"sm",checked:aD,onCheckedChange:aE,disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(m.FileText,{className:"h-3 w-3"}),X("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.commitSpecsDescription")})]}),!a$&&(0,b.jsxs)(C.Tooltip,{children:[(0,b.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(B.Switch,{id:"fork-and-pr",size:"sm",checked:aB,onCheckedChange:a=>{aC(a),a&&aE(!1)},disabled:j}),(0,b.jsxs)(y.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(l.GitFork,{className:"h-3 w-3"}),X("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(C.TooltipContent,{side:"bottom",children:X("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function U({features:a,value:e,onChange:h,disabled:i}){let{t:j}=(0,d.useTranslation)("web"),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),o=(0,c.useRef)(null),p=a.find(a=>a.id===e),q=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.id.toLowerCase().includes(m.toLowerCase())):a,s=(0,c.useCallback)(a=>{h(a),l(!1),n("")},[h]);return(0,c.useEffect)(()=>{k?setTimeout(()=>o.current?.focus(),0):n("")},[k]),(0,b.jsxs)(A.Popover,{open:k,onOpenChange:l,children:[(0,b.jsx)(A.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":k,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,r.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,b.jsx)("span",{className:"truncate",children:p?`${p.name} (${p.id.slice(0,8)})`:j("createDrawer.selectParent")}),(0,b.jsx)(f.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(A.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(w.Input,{ref:o,placeholder:j("createDrawer.searchFeatures"),value:m,onChange:a=>n(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===e,onClick:()=>s(void 0),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===e&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",void 0!==e&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:j("createDrawer.noParent")})]}),0===q.length&&m?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:j("createDrawer.noFeaturesFound")}):q.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e===a.id,onClick:()=>s(a.id),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",e===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",e!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function V({repositories:a,value:e,onChange:h,onAddRepository:i,disabled:m}){let[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(""),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[x,y]=(0,c.useState)(!1),B=(0,c.useRef)(null),{reactFileManager:C}=(0,L.useFeatureFlags)(),{t:D}=(0,d.useTranslation)("web"),E=a.find(a=>a.path===e),F=p.trim()?a.filter(a=>a.name.toLowerCase().includes(p.toLowerCase())||a.path.toLowerCase().includes(p.toLowerCase())):a,G=(0,c.useCallback)(a=>{h(a),o(!1),q("")},[h]),H=(0,c.useCallback)(async a=>{let b=await (0,M.addRepository)({path:a});if(b.error){v(b.error),t(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};i?.(a),h(a.path),o(!1),q("")}},[i,h]),N=(0,c.useCallback)(async()=>{if(!s){if(C)return void y(!0);t(!0),v(null);try{let a=await (0,J.pickFolder)();if(!a)return void t(!1);await H(a)}catch{y(!0)}finally{t(!1)}}},[s,C,H]),O=(0,c.useCallback)(async a=>{if(y(!1),a){t(!0),v(null);try{await H(a)}catch(a){v(a instanceof Error?a.message:"Failed to add repository")}finally{t(!1)}}},[H]);return(0,c.useEffect)(()=>{n?setTimeout(()=>B.current?.focus(),0):q("")},[n]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(A.Popover,{open:n,onOpenChange:o,children:[(0,b.jsx)(A.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":n,"aria-label":"Repository",disabled:m,"data-testid":"repository-combobox",className:(0,r.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",!E&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:E?E.name:"Select repository..."}),(0,b.jsx)(f.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(A.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(w.Input,{ref:B,placeholder:D("createDrawer.searchRepositories"),value:p,onChange:a=>q(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===F.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):F.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e===a.path,onClick:()=>G(a.path),className:(0,r.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",e===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(g.CheckIcon,{className:(0,r.cn)("h-4 w-4 shrink-0",e!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[a.name,a.isFork?(0,b.jsxs)(z.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,b.jsx)(l.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(I.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:N,disabled:s,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:[s?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(j.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),u?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:u}):null]})})]}),(0,b.jsx)(K.ReactFileManagerDialog,{open:x,onOpenChange:a=>{a||y(!1)},onSelect:O})]})}a.s(["FeatureCreateDrawer",()=>T],382052),a.s([],609803)}];
2
2
 
3
- //# sourceMappingURL=src_presentation_web_40673f0c._.js.map
3
+ //# sourceMappingURL=src_presentation_web_16c83ab4._.js.map