@shepai/cli 1.163.0 → 1.164.0

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 (275) hide show
  1. package/README.md +12 -0
  2. package/dist/src/presentation/web/app/actions/get-git-log.d.ts +44 -0
  3. package/dist/src/presentation/web/app/actions/get-git-log.d.ts.map +1 -0
  4. package/dist/src/presentation/web/app/actions/get-git-log.js +125 -0
  5. package/dist/src/presentation/web/app/actions/open-folder.d.ts.map +1 -1
  6. package/dist/src/presentation/web/app/actions/open-folder.js +5 -2
  7. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
  8. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  9. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +46 -15
  10. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  11. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +77 -5
  12. package/dist/src/presentation/web/components/common/control-center-drawer/use-drawer-sync.d.ts.map +1 -1
  13. package/dist/src/presentation/web/components/common/control-center-drawer/use-drawer-sync.js +11 -0
  14. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.js +10 -9
  16. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +5 -1
  17. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  18. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +24 -13
  19. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +56 -81
  21. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.js +11 -6
  23. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +7 -2
  26. package/dist/src/presentation/web/hooks/use-animations-enabled.d.ts +6 -0
  27. package/dist/src/presentation/web/hooks/use-animations-enabled.d.ts.map +1 -0
  28. package/dist/src/presentation/web/hooks/use-animations-enabled.js +30 -0
  29. package/dist/tsconfig.build.tsbuildinfo +1 -1
  30. package/package.json +1 -1
  31. package/web/.next/BUILD_ID +1 -1
  32. package/web/.next/build-manifest.json +2 -2
  33. package/web/.next/fallback-build-manifest.json +2 -2
  34. package/web/.next/prerender-manifest.json +3 -3
  35. package/web/.next/required-server-files.js +2 -2
  36. package/web/.next/required-server-files.json +2 -2
  37. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  38. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  41. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  44. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  47. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  50. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +69 -54
  53. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +69 -54
  57. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  61. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  64. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  67. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  70. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  73. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +69 -54
  76. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  77. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +69 -54
  80. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  81. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  82. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/_global-error.html +2 -2
  85. package/web/.next/server/app/_global-error.rsc +1 -1
  86. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  87. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  88. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  89. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  90. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  92. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  93. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  95. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  96. package/web/.next/server/app/api/graph-data/route.js +1 -1
  97. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  98. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  99. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  100. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  101. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  103. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  104. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  106. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  107. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  109. package/web/.next/server/app/version/page.js.nft.json +1 -1
  110. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  112. package/web/.next/server/chunks/{[root-of-the-server]__beda892a._.js → [root-of-the-server]__c78383b1._.js} +2 -2
  113. package/web/.next/server/chunks/{[root-of-the-server]__beda892a._.js.map → [root-of-the-server]__c78383b1._.js.map} +1 -1
  114. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js +1 -1
  115. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  116. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  117. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  118. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  119. package/web/.next/server/chunks/ssr/{7f428_lucide-react_dist_esm_icons_4b319ae6._.js → 7f428_lucide-react_dist_esm_icons_281e0ef8._.js} +2 -2
  120. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +1 -0
  121. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +3 -0
  122. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +1 -0
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js +2 -2
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +7 -0
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -0
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +1 -1
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0be67c7._.js +3 -0
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0be67c7._.js.map +1 -0
  149. package/web/.next/server/chunks/ssr/_02e01240._.js +4 -0
  150. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -0
  151. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_0727935d._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  156. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_18886033._.js +4 -0
  158. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -0
  159. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  160. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/_2f8f89fb._.js +3 -0
  162. package/web/.next/server/chunks/ssr/_2f8f89fb._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/_4d49a312._.js +3 -0
  164. package/web/.next/server/chunks/ssr/_4d49a312._.js.map +1 -0
  165. package/web/.next/server/chunks/ssr/{_def82237._.js → _52403a07._.js} +2 -2
  166. package/web/.next/server/chunks/ssr/{_def82237._.js.map → _52403a07._.js.map} +1 -1
  167. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_9215e9ec._.js +3 -0
  170. package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +1 -0
  171. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  172. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/_ad09f271._.js +4 -0
  174. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -0
  175. package/web/.next/server/chunks/ssr/_b7a43c05._.js +3 -0
  176. package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  178. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/_c45aee16._.js +3 -0
  180. package/web/.next/server/chunks/ssr/_c45aee16._.js.map +1 -0
  181. package/web/.next/server/chunks/ssr/{_b881a389._.js → _c9f903f2._.js} +2 -2
  182. package/web/.next/server/chunks/ssr/_c9f903f2._.js.map +1 -0
  183. package/web/.next/server/chunks/ssr/{_ce97386b._.js → _cc654b75._.js} +3 -3
  184. package/web/.next/server/chunks/ssr/_cc654b75._.js.map +1 -0
  185. package/web/.next/server/chunks/ssr/_ea9e1556._.js +4 -0
  186. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -0
  187. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  188. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  190. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  192. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  194. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  196. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  197. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  198. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  199. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  204. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  205. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  206. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
  207. package/web/.next/server/pages/500.html +2 -2
  208. package/web/.next/server/server-reference-manifest.js +1 -1
  209. package/web/.next/server/server-reference-manifest.json +190 -154
  210. package/web/.next/static/chunks/25e894a1de46b5fb.js +1 -0
  211. package/web/.next/static/chunks/2609c8fc6f14cb26.js +1 -0
  212. package/web/.next/static/chunks/29f0d874b1fde3d6.js +5 -0
  213. package/web/.next/static/chunks/400e93efac983a76.css +1 -0
  214. package/web/.next/static/chunks/498e45f8e05a5491.js +1 -0
  215. package/web/.next/static/chunks/{0d9e3aa7e10cf6e6.js → 56955fa252a9f3ed.js} +2 -2
  216. package/web/.next/static/chunks/779b5c49587b074e.js +1 -0
  217. package/web/.next/static/chunks/7f491899a2fe2fd7.js +1 -0
  218. package/web/.next/static/chunks/966eb2688300b7f5.js +1 -0
  219. package/web/.next/static/chunks/971e52f3f386ccfd.js +1 -0
  220. package/web/.next/static/chunks/a8243f8d06bdcef0.js +5 -0
  221. package/web/.next/static/chunks/b63e6727c84f30e2.js +1 -0
  222. package/web/.next/static/chunks/{0613d3829ce90fe9.js → ce0316338f7e01e6.js} +1 -1
  223. package/web/.next/static/chunks/ce87ded6cc38b4de.js +1 -0
  224. package/web/.next/static/chunks/cf000ba1a3f11439.js +7 -0
  225. package/web/.next/static/chunks/cf75fade434602c6.js +5 -0
  226. package/web/.next/static/chunks/{5f40b5c4f859b573.js → d9e4d90ef254da84.js} +1 -1
  227. package/web/.next/static/chunks/{780f688b8568331d.js → dc21cf85bfa262a7.js} +2 -2
  228. package/web/.next/static/chunks/e6398f94cffe9bc2.js +1 -0
  229. package/web/.next/static/chunks/ecfd93d61bf4d933.js +1 -0
  230. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_4b319ae6._.js.map +0 -1
  231. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5ceba65._.js +0 -3
  232. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5ceba65._.js.map +0 -1
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js +0 -7
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js.map +0 -1
  235. package/web/.next/server/chunks/ssr/_075fae20._.js +0 -4
  236. package/web/.next/server/chunks/ssr/_075fae20._.js.map +0 -1
  237. package/web/.next/server/chunks/ssr/_125c55af._.js +0 -4
  238. package/web/.next/server/chunks/ssr/_125c55af._.js.map +0 -1
  239. package/web/.next/server/chunks/ssr/_391e499a._.js +0 -3
  240. package/web/.next/server/chunks/ssr/_391e499a._.js.map +0 -1
  241. package/web/.next/server/chunks/ssr/_573caadf._.js +0 -3
  242. package/web/.next/server/chunks/ssr/_573caadf._.js.map +0 -1
  243. package/web/.next/server/chunks/ssr/_628621c7._.js +0 -4
  244. package/web/.next/server/chunks/ssr/_628621c7._.js.map +0 -1
  245. package/web/.next/server/chunks/ssr/_68996e5b._.js +0 -3
  246. package/web/.next/server/chunks/ssr/_68996e5b._.js.map +0 -1
  247. package/web/.next/server/chunks/ssr/_9412b27f._.js +0 -4
  248. package/web/.next/server/chunks/ssr/_9412b27f._.js.map +0 -1
  249. package/web/.next/server/chunks/ssr/_ac4a3873._.js +0 -3
  250. package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +0 -1
  251. package/web/.next/server/chunks/ssr/_b881a389._.js.map +0 -1
  252. package/web/.next/server/chunks/ssr/_ce97386b._.js.map +0 -1
  253. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +0 -3
  254. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +0 -1
  255. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js +0 -3
  256. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js.map +0 -1
  257. package/web/.next/static/chunks/0a79dfbb8486b66e.js +0 -5
  258. package/web/.next/static/chunks/14d9d9181bb4e337.js +0 -1
  259. package/web/.next/static/chunks/4581eaf51543601d.js +0 -1
  260. package/web/.next/static/chunks/47477ed4c5871747.js +0 -1
  261. package/web/.next/static/chunks/74db65fa7bfb80bd.js +0 -1
  262. package/web/.next/static/chunks/8b64414cdb4a4dc7.js +0 -1
  263. package/web/.next/static/chunks/bf55fb50a69f7350.js +0 -5
  264. package/web/.next/static/chunks/c04ada25ace6f30c.js +0 -1
  265. package/web/.next/static/chunks/c3a67566f78b5bc3.js +0 -1
  266. package/web/.next/static/chunks/ca8752df0e809c1b.js +0 -7
  267. package/web/.next/static/chunks/d2cbeefbc8967b16.js +0 -1
  268. package/web/.next/static/chunks/d39ae882d080aa52.js +0 -1
  269. package/web/.next/static/chunks/d6e702c209c413ce.js +0 -5
  270. package/web/.next/static/chunks/dbfbd9d9ee5eb2d0.js +0 -1
  271. package/web/.next/static/chunks/dc39dd4276779dec.js +0 -1
  272. package/web/.next/static/chunks/e779296e738a812b.css +0 -1
  273. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → rav6zzO3q2NtCKwg9XZXP}/_buildManifest.js +0 -0
  274. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → rav6zzO3q2NtCKwg9XZXP}/_clientMiddlewareManifest.json +0 -0
  275. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → rav6zzO3q2NtCKwg9XZXP}/_ssgManifest.js +0 -0
@@ -1,5 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36986,e=>{"use strict";var t=e.i(20314),s=e.i(79054);e.i(41001);var a=e.i(64780),r=e.i(31406),n=e.i(60112),l=e.i(83428),i=e.i(67669),o=e.i(24042),d=e.i(6910),c=e.i(33548),u=e.i(23925),m=e.i(8986),x=e.i(30702),p=e.i(37260),h=e.i(83299),f=e.i(21023);let g=(0,f.createServerReference)("607fe67673080f8089cfabe567d2d22ebc986fe117",f.callServer,void 0,f.findSourceMapURL,"approveFeature");var b=e.i(49764),j=e.i(54164);let v=(0,f.createServerReference)("70c681cbcc539bcd464ea1c013bf489954a9bd34b2",f.callServer,void 0,f.findSourceMapURL,"rejectFeature"),N=(0,f.createServerReference)("409a78f4f3f966e101b0cbdca3675ba090213c0e49",f.callServer,void 0,f.findSourceMapURL,"getFeatureArtifact"),y=(0,f.createServerReference)("4081745b1bcbe1809ec6604aab3beeb3ce739016f0",f.callServer,void 0,f.findSourceMapURL,"getResearchArtifact"),w=(0,f.createServerReference)("40a3d7200185b30b516402935b1b0cce6836abb21b",f.callServer,void 0,f.findSourceMapURL,"getMergeReviewData");var k=e.i(75921),C=e.i(8361),S=e.i(30153),T=e.i(8537),M=e.i(39443);e.i(1650);var R=e.i(11495);e.i(99348);var I=e.i(5259),A=e.i(35364),P=e.i(2828);e.i(31566);var $=e.i(65104);e.i(81803);var D=e.i(72714),E=e.i(38573),L=e.i(19933),z=e.i(99105),F=e.i(51251),q=e.i(70646);function B({actions:e,repositoryPath:a,worktreePath:r,showSpecs:n}){let[i,o]=(0,s.useState)(!1),d=e.ideLoading||e.shellLoading||e.folderLoading||e.specsLoading,x=e.ideError??e.shellError??e.folderError??e.specsError;return(0,t.jsxs)(q.DropdownMenu,{modal:!1,children:[(0,t.jsx)(q.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)(A.Button,{variant:"outline",size:"sm",className:"gap-1.5",disabled:d,children:[d?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):x?(0,t.jsx)(F.CircleAlert,{className:"text-destructive size-4"}):(0,t.jsx)(L.FolderOpen,{className:"size-4"}),"Open",(0,t.jsx)(z.ChevronDown,{className:"size-3 opacity-60"})]})}),(0,t.jsxs)(q.DropdownMenuContent,{align:"start",className:"w-48",children:[(0,t.jsx)(q.DropdownMenuLabel,{children:"Open in"}),(0,t.jsxs)(q.DropdownMenuItem,{onClick:e.openInIde,disabled:e.ideLoading,className:"gap-2",children:[e.ideLoading?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):e.ideError?(0,t.jsx)(F.CircleAlert,{className:"text-destructive size-4"}):(0,t.jsx)(m.Code2,{className:"size-4"}),"IDE"]}),(0,t.jsxs)(q.DropdownMenuItem,{onClick:e.openInShell,disabled:e.shellLoading,className:"gap-2",children:[e.shellLoading?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):e.shellError?(0,t.jsx)(F.CircleAlert,{className:"text-destructive size-4"}):(0,t.jsx)(E.Terminal,{className:"size-4"}),"Terminal"]}),(0,t.jsxs)(q.DropdownMenuItem,{onClick:e.openFolder,disabled:e.folderLoading,className:"gap-2",children:[e.folderLoading?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):e.folderError?(0,t.jsx)(F.CircleAlert,{className:"text-destructive size-4"}):(0,t.jsx)(L.FolderOpen,{className:"size-4"}),"Folder"]}),(0,t.jsxs)(q.DropdownMenuItem,{onClick:e.openSpecsFolder,disabled:e.specsLoading||!n,className:"gap-2",children:[e.specsLoading?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):e.specsError?(0,t.jsx)(F.CircleAlert,{className:"text-destructive size-4"}):(0,t.jsx)(L.FolderOpen,{className:"size-4"}),"Specs Folder"]}),(0,t.jsx)(q.DropdownMenuSeparator,{}),(0,t.jsxs)(q.DropdownMenuItem,{onClick:()=>{navigator.clipboard.writeText(r??a),o(!0),setTimeout(()=>o(!1),2e3)},className:"gap-2",children:[i?(0,t.jsx)(u.Check,{className:"size-4 text-green-600"}):(0,t.jsx)(c.Copy,{className:"size-4"}),i?"Copied!":"Copy path"]})]})]})}var O=e.i(79687),U=e.i(68304),H=e.i(25235);let V=(0,f.createServerReference)("40cf7295b3b65b759326d7a4d14df2cf8b25a4687e",f.callServer,void 0,f.findSourceMapURL,"getFeaturePhaseTimings"),W=(0,f.createServerReference)("40385e3e9f9b3b4eb5ed9cd65bafe5e14db2703da8",f.callServer,void 0,f.findSourceMapURL,"getFeaturePlan");var G=e.i(11345),_=e.i(76016),K=e.i(31777),Q=e.i(81846),Z=e.i(16868),J=e.i(3645);let X=(0,J.default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var Y=e.i(58481),ee=e.i(48306);e.i(50032);var et=e.i(86254),es=e.i(42076);let ea=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"]);function er({onReject:e,onApprove:r,approveLabel:n,approveVariant:l="default",revisionPlaceholder:i,isProcessing:o=!1,isRejecting:d=!1,children:c,chatInput:m,onChatInputChange:x}){let{t:p}=(0,a.useTranslation)("web"),h="warning"===l,f=h?Y.AlertTriangle:u.Check,g=h?"bg-orange-500/85":"bg-blue-500/85",[b,j]=(0,s.useState)(""),v=m??b,N=x??j,y=(0,C.useSoundAction)("approve"),w=o||d,[k,S]=(0,s.useState)([]),[T,M]=(0,s.useState)(!1),[R,I]=(0,s.useState)(null),[$,D]=(0,s.useState)(!1),[E,L]=(0,s.useState)(!1),[z,F]=(0,s.useState)(!1),q=v.trim().length>0,B=q?$||E&&z:!$,O=(0,s.useRef)(0),U=(0,s.useRef)(crypto.randomUUID()),H=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){("Control"===e.key||"Meta"===e.key)&&L(!0),"Shift"===e.key&&F(!0)}function t(e){("Control"===e.key||"Meta"===e.key)&&L(!1),"Shift"===e.key&&F(!1)}function s(){L(!1),F(!1)}return window.addEventListener("keydown",e),window.addEventListener("keyup",t),window.addEventListener("blur",s),()=>{window.removeEventListener("keydown",e),window.removeEventListener("keyup",t),window.removeEventListener("blur",s)}},[]);let V=(0,s.useCallback)(async e=>{for(let t of(I(null),e)){if(t.size>0xa00000)return void I(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!ea.has(e))return void I(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();S(s=>[...s,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let s=new FormData;s.append("file",t),s.append("sessionId",U.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:s});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));S(t=>t.filter(t=>t.id!==e)),I(t.error??"Upload failed");return}let r=await a.json();S(t=>t.some(t=>t.id!==e&&t.path===r.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...r,id:e,loading:!1}:t))}catch{S(t=>t.filter(t=>t.id!==e)),I("Upload failed")}}},[]),W=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current+=1,1===O.current&&M(!0)},[]),_=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current-=1,0===O.current&&M(!1)},[]),Q=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),J=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O.current=0,M(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&V(t)},[V]),er=(0,s.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let s=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&s.push(t)}s.length>0&&(e.preventDefault(),V(s))},[V]),en=(0,s.useCallback)(async()=>{try{let e=await (0,es.pickFiles)();e&&S(t=>{let s=new Set(t.map(e=>e.path)),a=e.filter(e=>!s.has(e.path)).map(e=>({id:crypto.randomUUID(),name:e.name,size:e.size,mimeType:"application/octet-stream",path:e.path}));return a.length>0?[...t,...a]:t})}catch{}},[]),el=(0,s.useCallback)(e=>{S(t=>t.filter(t=>t.id!==e))},[]),ei=(0,s.useCallback)((e,t)=>{S(s=>s.map(s=>s.id===e?{...s,notes:t}:s))},[]),eo=(0,s.useCallback)(()=>{N(""),S([]),I(null)},[N]),ed=(0,s.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),H.current?.requestSubmit())},[]),ec="u">typeof navigator&&/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl";return(0,t.jsxs)("div",{className:"border-border shrink-0 border-t",children:[c,e?(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsx)("form",{ref:H,onSubmit:function(t){t.preventDefault();let s=v.trim();if(B)y.play(),r(),eo();else{if(!s||!e)return;e(s,k.filter(e=>!e.loading)),eo()}},className:"p-3",children:(0,t.jsx)("div",{role:"region","aria-label":p("createDrawer.fileDropZone"),"data-drag-over":T?"true":"false",onDragEnter:W,onDragLeave:_,onDragOver:Q,onDrop:J,className:(0,K.cn)("rounded-md border-2 border-transparent transition-colors",T&&"border-primary/50 bg-primary/5"),children:(0,t.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring flex flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,t.jsx)(ee.Textarea,{placeholder:i??"Ask AI to revise...","aria-label":i??"Ask AI to revise...",disabled:w,value:v,onChange:e=>N(e.target.value),onKeyDown:ed,onPaste:er,rows:1,className:"max-h-[35dvh] min-h-9 flex-1 resize-none overflow-y-auto rounded-none border-0 py-2 shadow-none focus-visible:ring-0","data-testid":"drawer-chat-input"}),k.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:k.map(e=>(0,t.jsx)(et.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>el(e.id),disabled:w,loading:e.loading,notes:e.notes,onNotesChange:t=>ei(e.id,t)},e.id))}),R?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:R}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-2 border-t px-3 py-1.5",children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex-1 truncate text-[11px]",children:[(0,t.jsxs)("kbd",{className:"bg-muted rounded px-1 py-0.5 font-mono text-[10px]",children:[ec,"+Enter"]})," ",q?"reject":"approve"]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:en,disabled:w,"aria-label":p("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(Z.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"top",children:p("chat.attachFiles")})]}),(0,t.jsx)("div",{onMouseLeave:()=>D(!1),children:(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"submit",disabled:w,"data-testid":"drawer-action-submit",className:(0,K.cn)("relative flex h-9 min-w-[12rem] cursor-pointer items-center overflow-hidden rounded-md border ps-4 pe-10 text-sm font-medium whitespace-nowrap transition-colors","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",B?`${h?"border-orange-400/60":"border-blue-400/60"} text-white`:q&&E&&!z?"border-primary bg-muted ring-primary/30 shadow-sm ring-1":"border-border bg-muted/50 hover:bg-muted shadow-sm"),children:[(0,t.jsx)("div",{className:(0,K.cn)("pointer-events-none absolute inset-0 transition-transform duration-300 ease-in-out",g),style:{transform:B?"translateX(0)":"translateX(100%)"}}),(0,t.jsxs)("span",{className:(0,K.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 pe-8 transition-opacity duration-300",B?"opacity-0":"opacity-100"),children:[(0,t.jsx)(X,{className:"h-4 w-4 shrink-0"}),"Reject"]}),(0,t.jsxs)("span",{className:(0,K.cn)("absolute inset-0 z-10 flex items-center justify-center gap-2 text-white transition-opacity duration-300",B?"opacity-100":"opacity-0"),children:[(0,t.jsx)(f,{className:"h-4 w-4 shrink-0"}),n]}),(0,t.jsx)("span",{className:(0,K.cn)(`border-input/60 absolute inset-y-0 right-0 z-20 flex w-8 cursor-pointer items-center justify-center rounded-e-[5px] border-s ${g} transition-opacity duration-300`,!q&&!$&&"pointer-events-none opacity-0"),onMouseEnter:()=>D(!0),children:(0,t.jsx)(G.ChevronLeft,{className:"h-4 w-4 text-white"})})]})}),h?null:(0,t.jsx)(P.TooltipContent,{side:"top",children:B?n:p("drawerActionBar.sendRevisionFeedback")})]})})]})]})})})}):(0,t.jsx)("div",{className:"flex items-center gap-2 px-4 pb-4",children:(0,t.jsx)(A.Button,{type:"button",className:"flex-1",disabled:w,onClick:()=>{y.play(),r()},children:n})})]})}function en({data:e,selections:a,onSelect:r,onApprove:n,onReject:l,isProcessing:i=!1,isRejecting:o=!1,showHeader:d=!1,chatInput:c,onChatInputChange:u}){let{question:m,context:x,questions:p,finalAction:h}=e,[f,g]=(0,s.useState)(0),b=(0,C.useSoundAction)("select"),j=(0,C.useSoundAction)("navigate"),v=p.length,N=f===v-1,y=p[f],w=(0,s.useMemo)(()=>Object.keys(a).length,[a]),k=(0,s.useCallback)((e,t)=>{b.play(),r(e,t),N||setTimeout(()=>g(e=>e+1),250)},[r,N,b]);return 0===v?null:(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[d?(0,t.jsxs)("div",{className:"border-border flex items-start gap-3 border-b pb-3",children:[(0,t.jsx)("div",{className:"mt-1.5 h-2 w-2 shrink-0 rounded-full bg-amber-500"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("h3",{className:"text-foreground mb-1.5 text-sm font-bold",children:m}),(0,t.jsx)("p",{className:"text-muted-foreground text-xs leading-relaxed",children:x})]})]}):null,(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsxs)("label",{className:"text-foreground min-w-0 flex-1 text-sm font-semibold",children:[f+1,". ",y.question]}),(0,t.jsx)("div",{className:"mt-1.5 flex shrink-0 gap-1",children:p.map((e,s)=>(0,t.jsx)("button",{type:"button","aria-label":`Go to question ${s+1}`,className:(0,K.cn)("h-1.5 rounded-full transition-all duration-200",s===f?"bg-primary w-4":"w-1.5",s!==f&&a[e.id]?"bg-primary/50":"",s===f||a[e.id]?"":"bg-muted-foreground/25"),onClick:()=>{j.play(),g(s)}},e.id))})]}),(0,t.jsx)("div",{className:"space-y-2",children:y.options.map((e,s)=>{let r=a[y.id]===e.id,n=String.fromCharCode(65+s);return(0,t.jsx)("button",{type:"button",className:(0,K.cn)("border-border w-full overflow-hidden rounded-md border px-3 py-3 text-start text-xs transition-all","hover:border-primary/70 hover:bg-primary/5 group",r&&"border-primary bg-primary/5",e.isNew&&"animate-option-highlight"),disabled:i,onClick:()=>k(y.id,e.id),children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsxs)("span",{className:"text-muted-foreground mt-0.5 font-mono text-xs",children:[n,"."]}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-foreground mb-0.5 text-xs font-semibold wrap-break-word",children:e.label}),(0,t.jsx)("div",{className:"text-muted-foreground text-xs leading-snug",children:e.rationale})]}),e.recommended||e.isNew?(0,t.jsx)("div",{className:"shrink-0 pt-0.5",children:e.recommended?(0,t.jsx)(Q.Badge,{className:"px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):(0,t.jsx)(Q.Badge,{className:"border-transparent bg-emerald-600 px-1.5 py-0 text-[10px] whitespace-nowrap text-white hover:bg-emerald-600/80",children:"New"})}):null]})},e.id)})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-2",children:[(0,t.jsxs)(A.Button,{type:"button",variant:"ghost",size:"sm",disabled:0===f||i,onClick:()=>{j.play(),g(e=>e-1)},children:[(0,t.jsx)(G.ChevronLeft,{className:"me-1 h-4 w-4"}),"Previous"]}),N?null:(0,t.jsxs)(A.Button,{type:"button",variant:"ghost",size:"sm",disabled:i,onClick:()=>{j.play(),g(e=>e+1)},children:[a[y.id]?"Next":"Skip",(0,t.jsx)(_.ChevronRight,{className:"ms-1 h-4 w-4"})]})]})]}),(0,t.jsx)(er,{onReject:l,onApprove:()=>n(h.id),approveLabel:h.label,revisionPlaceholder:"Ask AI to refine requirements...",isProcessing:i,isRejecting:o,chatInput:c,onChatInputChange:u,children:(0,t.jsx)("div",{className:(0,K.cn)("bg-muted h-1.5 overflow-hidden",w>0&&w<v||i?"opacity-100":"opacity-0","transition-opacity duration-200"),"data-testid":"progress-bar-container",children:i?(0,t.jsx)("div",{className:"bg-primary animate-indeterminate-progress h-full w-1/3"}):(0,t.jsx)("div",{className:"bg-primary h-full transition-all duration-300",style:{width:`${v>0?w/v*100:0}%`},"data-testid":"progress-bar"})})})]})}var el=e.i(427);let ei=(0,J.default)("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]),eo=(0,J.default)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),ed={p:({children:e})=>(0,t.jsx)("p",{className:"text-muted-foreground mb-2 text-xs leading-relaxed last:mb-0",children:e}),strong:({children:e})=>(0,t.jsx)("strong",{className:"text-foreground font-semibold",children:e}),em:({children:e})=>(0,t.jsx)("em",{className:"italic",children:e}),code:({children:e,className:s})=>s?(0,t.jsx)("code",{className:`${s} text-[11px]`,children:e}):(0,t.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:e}),pre:({children:e})=>(0,t.jsx)("pre",{className:"bg-muted my-2 overflow-x-auto rounded-lg border p-3",children:e}),ul:({children:e})=>(0,t.jsx)("ul",{className:"text-muted-foreground mb-2 list-disc space-y-1 ps-4 text-xs",children:e}),ol:({children:e})=>(0,t.jsx)("ol",{className:"text-muted-foreground mb-2 list-decimal space-y-1 ps-4 text-xs",children:e}),li:({children:e})=>(0,t.jsx)("li",{className:"leading-relaxed",children:e}),a:({children:e,href:s})=>(0,t.jsx)("a",{href:s,className:"text-primary underline underline-offset-2",target:"_blank",rel:"noopener noreferrer",children:e})};function ec({decision:e,index:a}){let[r,n]=(0,s.useState)(!1),l=(0,C.useSoundAction)("expand"),i=(0,C.useSoundAction)("collapse");return(0,t.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,t.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,t.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:a+1}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:e.title}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-xs",children:e.chosen})]})]}),"decisionName"in e&&e.decisionName?(0,t.jsx)(Q.Badge,{variant:"secondary",className:"bg-primary/10 text-primary shrink-0",children:e.decisionName}):null]}),e.rationale?(0,t.jsx)(el.default,{components:ed,children:e.rationale}):null]}),e.rejected.length>0?(0,t.jsxs)("div",{className:"border-border border-t",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{r?i.play():l.play(),n(e=>!e)},className:"text-muted-foreground hover:bg-muted/50 flex w-full items-center gap-1.5 px-4 py-3 text-xs font-medium transition-colors",children:[(0,t.jsx)(_.ChevronRight,{className:`h-3.5 w-3.5 transition-transform ${r?"rotate-90":""}`}),(0,t.jsx)(eo,{className:"h-3.5 w-3.5"}),"Other Options Considered (",e.rejected.length,")"]}),r?(0,t.jsx)("div",{className:"space-y-1.5 px-4 pb-3",children:e.rejected.map(e=>(0,t.jsx)("div",{className:"bg-primary/5 rounded-md px-3 py-2",children:(0,t.jsx)("span",{className:"text-foreground text-xs",children:e})},e))}):null]}):null]})}function eu({data:e}){let{summary:s,decisions:a}=e;return 0===a.length?null:(0,t.jsxs)("div",{className:"space-y-4 p-4",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("h2",{className:"text-foreground text-sm font-bold",children:"Technical Implementation Plan Review"}),s?(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:s}):null]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,t.jsx)(ei,{className:"text-primary h-4 w-4"}),(0,t.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Technical Decisions"})]}),a.map((e,s)=>(0,t.jsx)(ec,{decision:e,index:s},e.title))]})}var em=e.i(41698);function ex({item:e,index:s}){return(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsx)("div",{className:"space-y-2 px-4 py-3",children:(0,t.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,t.jsx)("span",{className:"bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold",children:s+1}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"text-foreground text-sm leading-tight font-semibold",children:e.question}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)("p",{className:"text-muted-foreground min-w-0 truncate text-xs",children:e.selectedOption}),e.wasRecommended?(0,t.jsx)(Q.Badge,{className:"shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap",children:"AI Recommended"}):null]})]})]})})})}function ep({data:e}){let{questions:s}=e;return 0===s.length?null:(0,t.jsxs)("div",{className:"space-y-4 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(em.ClipboardList,{className:"text-primary h-4 w-4"}),(0,t.jsx)("h3",{className:"text-foreground text-sm font-bold",children:"Product Decisions"})]}),s.map((e,s)=>(0,t.jsx)(ex,{item:e,index:s},e.question))]})}let eh=(0,J.default)("file-diff",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]);var ef=e.i(48923),eg=e.i(49228);let eb=(0,J.default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),ej=(0,J.default)("camera",[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);var ev=e.i(70471);let eN=(0,J.default)("monitor-play",[["path",{d:"M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z",key:"vbtd3f"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]);var ey=e.i(81181),ew=e.i(35e3),ek=e.i(30090),ek=ek,eC=e.i(17406);function eS({status:e}){switch(e){case eC.CiStatus.Success:return(0,t.jsxs)(Q.Badge,{className:"border-transparent bg-green-50 text-green-700 hover:bg-green-50",children:[(0,t.jsx)(ew.CheckCircle2,{className:"me-1 h-3.5 w-3.5"}),"Passing"]});case eC.CiStatus.Pending:return(0,t.jsxs)(Q.Badge,{className:"border-transparent bg-yellow-50 text-yellow-700 hover:bg-yellow-50",children:[(0,t.jsx)(l.Loader2,{className:"me-1 h-3.5 w-3.5 animate-spin"}),"Pending"]});case eC.CiStatus.Failure:return(0,t.jsxs)(Q.Badge,{className:"border-transparent bg-red-50 text-red-700 hover:bg-red-50",children:[(0,t.jsx)(ek.default,{className:"me-1 h-3.5 w-3.5"}),"Failing"]})}}let eT=(0,J.default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]),eM=(0,J.default)("file-minus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}]]),eR=(0,J.default)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]),eI={added:{icon:eT,label:"A",className:"text-green-600"},modified:{icon:eR,label:"M",className:"text-amber-600"},deleted:{icon:eM,label:"D",className:"text-red-600"},renamed:{icon:eR,label:"R",className:"text-blue-600"}};function eA({status:e}){let s=eI[e],a=s.icon;return(0,t.jsx)(a,{className:(0,K.cn)("h-3.5 w-3.5 shrink-0",s.className)})}function eP({hunk:e}){return(0,t.jsxs)("div",{className:"border-border border-t first:border-t-0",children:[(0,t.jsx)("div",{className:"bg-muted/50 text-muted-foreground px-3 py-1 font-mono text-[10px]",children:e.header}),(0,t.jsx)("div",{className:"font-mono text-[11px] leading-[18px]",children:e.lines.map(e=>(0,t.jsxs)("div",{className:(0,K.cn)("flex","added"===e.type&&"bg-green-50 dark:bg-green-950/30","removed"===e.type&&"bg-red-50 dark:bg-red-950/30"),children:[(0,t.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:e.oldNumber??""}),(0,t.jsx)("span",{className:"text-muted-foreground w-10 shrink-0 px-1 text-end text-[10px] select-none",children:e.newNumber??""}),(0,t.jsx)("span",{className:(0,K.cn)("w-4 shrink-0 text-center select-none","added"===e.type&&"text-green-700 dark:text-green-400","removed"===e.type&&"text-red-700 dark:text-red-400"),children:"added"===e.type?"+":"removed"===e.type?"-":" "}),(0,t.jsx)("span",{className:"min-w-0 flex-1 pe-2 break-all whitespace-pre-wrap",children:e.content})]},`${e.type}-${e.oldNumber??""}-${e.newNumber??""}`))})]})}function e$({file:e}){let[a,r]=(0,s.useState)(!1),n=e.path.split("/").pop()??e.path,l=e.path.includes("/")?e.path.slice(0,e.path.lastIndexOf("/")):"";return(0,t.jsxs)("div",{className:"border-border border-b last:border-b-0",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>r(!a),className:"hover:bg-muted/50 flex w-full items-center gap-2 px-3 py-2 text-start",children:[(0,t.jsx)(_.ChevronRight,{className:(0,K.cn)("text-muted-foreground h-3 w-3 shrink-0 transition-transform duration-150",a&&"rotate-90")}),(0,t.jsx)(eA,{status:e.status}),(0,t.jsx)("span",{className:"text-foreground min-w-0 flex-1 truncate text-xs",children:l?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"text-muted-foreground",children:[l,"/"]}),n]}):n}),e.oldPath?(0,t.jsxs)("span",{className:"text-muted-foreground truncate text-[10px]",children:["← ",e.oldPath.split("/").pop()]}):null,(0,t.jsxs)("span",{className:"shrink-0 text-[10px]",children:[e.additions>0?(0,t.jsxs)("span",{className:"text-green-600",children:["+",e.additions]}):null,e.additions>0&&e.deletions>0?" ":null,e.deletions>0?(0,t.jsxs)("span",{className:"text-red-600",children:["-",e.deletions]}):null]})]}),a&&e.hunks.length>0?(0,t.jsx)("div",{className:"border-border overflow-x-auto border-t",children:e.hunks.map(e=>(0,t.jsx)(eP,{hunk:e},e.header))}):null]})}function eD({fileDiffs:e}){return 0===e.length?null:(0,t.jsxs)("div",{className:"border-border rounded-lg border",children:[(0,t.jsx)("div",{className:"px-4 py-3",children:(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,t.jsx)(ev.FileText,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changed Files"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:["(",e.length,")"]})]})}),(0,t.jsx)("div",{className:"border-border border-t",children:e.map(e=>(0,t.jsx)(e$,{file:e},`${e.status}-${e.path}`))})]})}let eE={Screenshot:ej,Video:eN,TestOutput:ev.FileText,TerminalRecording:E.Terminal},eL=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp"]),ez=new Set([".mp4",".webm",".mov"]);function eF({evidence:e}){var a,r;let n,[l,i]=(0,s.useState)(!0),o=eE[e.type]??ej,d=(n=(a=e.relativePath).lastIndexOf("."))>=0?a.slice(n).toLowerCase():"",c=(r=e.relativePath,`/api/evidence?path=${encodeURIComponent(r)}`),u="Screenshot"===e.type||eL.has(d),m="Video"===e.type||ez.has(d),x="TestOutput"===e.type||"TerminalRecording"===e.type;return(0,t.jsxs)("li",{className:"border-border rounded-md border",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>i(!l),className:"flex w-full cursor-pointer items-center gap-2.5 px-3 py-2.5 text-start",children:[l?(0,t.jsx)(z.ChevronDown,{className:"text-muted-foreground h-3 w-3 shrink-0"}):(0,t.jsx)(_.ChevronRight,{className:"text-muted-foreground h-3 w-3 shrink-0"}),(0,t.jsx)(o,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"text-foreground text-xs font-medium",children:e.description}),e.taskRef?(0,t.jsxs)("span",{className:"text-muted-foreground ms-1.5 text-[10px]",children:["(",e.taskRef,")"]}):null]}),(0,t.jsx)("a",{href:c,download:!0,onClick:e=>e.stopPropagation(),className:"text-muted-foreground hover:text-foreground shrink-0 rounded p-1 transition-colors","aria-label":"Download",children:(0,t.jsx)(ey.Download,{className:"h-3 w-3"})})]}),l&&c?(0,t.jsx)("div",{className:"border-border border-t px-3 py-2.5",children:u?(0,t.jsx)("img",{src:c,alt:e.description,className:"max-h-80 w-full rounded-md border object-contain",loading:"lazy"}):m?(0,t.jsx)("video",{src:c,controls:!0,className:"max-h-80 w-full rounded-md border",preload:"metadata",children:(0,t.jsx)("track",{kind:"captions"})}):x?(0,t.jsx)(eq,{url:c}):(0,t.jsx)("p",{className:"text-muted-foreground truncate font-mono text-[10px]",children:e.relativePath})}):null,null]})}function eq({url:e}){let[a,r]=(0,s.useState)(null),[n,l]=(0,s.useState)(!1);return n?a?(0,t.jsx)("pre",{className:"bg-muted/50 max-h-60 overflow-auto rounded-md p-3 font-mono text-[11px] leading-relaxed",children:a}):(0,t.jsx)("p",{className:"text-muted-foreground text-[10px]",children:"Unable to load preview"}):(fetch(e).then(e=>e.ok?e.text():Promise.reject(Error("Failed"))).then(e=>{let t=e.split("\n");r(t.length>100?`${t.slice(0,100).join("\n")}
2
- ...`:e)}).catch(()=>r(null)).finally(()=>l(!0)),(0,t.jsx)("div",{className:"bg-muted/50 h-16 animate-pulse rounded-md"}))}function eB({evidence:e}){return(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,t.jsx)(ej,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Evidence"}),(0,t.jsx)(Q.Badge,{variant:"secondary",className:"text-[10px]",children:e.length})]}),(0,t.jsx)("ul",{className:"space-y-2",children:e.map(e=>(0,t.jsx)(eF,{evidence:e},`${e.type}-${e.relativePath}`))})]})})}function eO({data:e,readOnly:s=!1,onApprove:a,onReject:r,isProcessing:n=!1,isRejecting:l=!1,chatInput:i,onChatInputChange:o}){let{pr:d,diffSummary:c,fileDiffs:u,branch:m,warning:p,evidence:h,hideCiStatus:f}=e,g=d?.mergeable===!1,b=g&&r?()=>r("Resolve merge conflicts",[]):a;return(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"flex-1 space-y-4 overflow-y-auto p-4",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-1.5 h-2.5 w-2.5 shrink-0 rounded-full bg-emerald-500"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("h2",{className:"text-foreground text-sm font-bold",children:s?"Merge History":"Merge Review"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-xs leading-relaxed",children:s?"This feature was merged. Review the pull request details and evidence below.":d?"Review the pull request details and approve to merge.":"Review the changes and approve to merge."})]})]}),m?(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,t.jsx)(eg.GitBranch,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,t.jsx)(Q.Badge,{variant:"secondary",className:"font-mono text-[11px]",children:m.source}),(0,t.jsx)(eb,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,t.jsx)(Q.Badge,{variant:"outline",className:"font-mono text-[11px]",children:m.target})]})}):null,d?(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsxs)("div",{className:"space-y-3 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("a",{href:d.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2",children:["PR #",d.number,(0,t.jsx)(x.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,t.jsx)(Q.Badge,{variant:"outline",className:"text-xs",children:d.status})]}),!1===d.mergeable?(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Merge Status"}),(0,t.jsxs)(Q.Badge,{className:"border-transparent bg-orange-50 text-orange-700 hover:bg-orange-50",children:[(0,t.jsx)(Y.AlertTriangle,{className:"me-1 h-3.5 w-3.5"}),"Conflicts"]})]}):null,d.ciStatus&&!0!==f?(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"CI Status"}),(0,t.jsx)(eS,{status:d.ciStatus})]}):null,d.commitHash?(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Commit"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(ef.GitCommitHorizontal,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:d.commitHash.slice(0,7)})]})]}):null]})}):null,c?(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,t.jsx)(eh,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("span",{className:"text-foreground text-xs font-semibold",children:"Changes"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-4 gap-3",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"text-foreground text-sm font-bold",children:c.filesChanged}),(0,t.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"files"})]}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"text-sm font-bold text-green-600",children:["+",c.additions]}),(0,t.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"additions"})]}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsxs)("div",{className:"text-sm font-bold text-red-600",children:["-",c.deletions]}),(0,t.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"deletions"})]}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"text-foreground text-sm font-bold",children:c.commitCount}),(0,t.jsx)("div",{className:"text-muted-foreground text-[10px]",children:"commits"})]})]})]})}):p?(0,t.jsx)("div",{className:"border-border rounded-lg border",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3",children:[(0,t.jsx)(Y.AlertTriangle,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:p})]})}):null,h&&h.length>0?(0,t.jsx)(eB,{evidence:h}):null,u&&u.length>0?(0,t.jsx)(eD,{fileDiffs:u}):null]}),!s&&(0,t.jsx)(er,{onReject:r,onApprove:b,approveLabel:g?"Resolve Conflicts":"Approve Merge",approveVariant:g?"warning":"default",revisionPlaceholder:"Ask AI to revise before merging...",isProcessing:n,isRejecting:l,chatInput:i,onChatInputChange:o})]})}let eU=(0,J.default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var eH=e.i(38227);let eV=(0,J.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var eW=e.i(60253),eG=e.i(53360),e_=e.i(2287),eK=e.i(28267),eQ=e.i(80436);let eZ=(0,J.default)("image-off",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]),eJ=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function eX(e){let t=e.lastIndexOf(".");return t>=0&&eJ.has(e.slice(t).toLowerCase())}function eY(e){let t=e.lastIndexOf(".")>=0?e.slice(e.lastIndexOf(".")):"",s=eX(e)?`image/${t.slice(1).replace("jpg","jpeg")}`:"",a=new URLSearchParams({path:e,...s&&{mimeType:s}});return`/api/attachments/preview?${a.toString()}`}let e0=/(?:^|\s)@(\/[^\s]+)/g;function e1({text:e,attachmentPaths:s}){let a=function(e){let t=[],s=0;for(let a of e.matchAll(e0)){let r=a.index,n=r+(a[0].length-a[0].trimStart().length);n>s&&t.push({type:"text",value:e.slice(s,n)}),t.push({type:"attachment",path:a[1]}),s=r+a[0].length}return s<e.length&&t.push({type:"text",value:e.slice(s)}),t}(e),r=a.some(e=>"attachment"===e.type),n=s?.filter(Boolean)??[];return r||0!==n.length?(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[a.map(e=>{if("text"===e.type){let s=e.value.trim();return s?(0,t.jsx)("span",{className:"text-sm leading-relaxed",children:s},`text-${s.slice(0,40)}`):null}return(0,t.jsx)(e2,{path:e.path},`att-${e.path}`)}),n.map(e=>(0,t.jsx)(e2,{path:e},`extra-${e}`))]}):(0,t.jsx)("span",{className:"text-sm leading-relaxed",children:e})}function e2({path:e}){let a=e.split("/").pop()??e,[r,n]=(0,s.useState)(!1);return eX(e)?r?(0,t.jsxs)("div",{"data-testid":"inline-attachment-image-error",className:"text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,t.jsx)(eZ,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:a})]}):(0,t.jsxs)(e_.Dialog,{children:[(0,t.jsx)(e_.DialogTrigger,{asChild:!0,children:(0,t.jsx)("img",{src:eY(e),alt:a,"data-testid":"inline-attachment-image",onError:()=>n(!0),className:"max-h-48 max-w-full cursor-pointer rounded-md border object-contain transition-opacity hover:opacity-80"})}),(0,t.jsxs)(e_.DialogContent,{className:"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90",children:[(0,t.jsx)(eK.VisuallyHidden.Root,{children:(0,t.jsxs)(e_.DialogTitle,{children:["Preview: ",a]})}),(0,t.jsx)("div",{className:"relative bg-black/90",children:(0,t.jsx)("img",{src:eY(e),alt:a,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,t.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col",children:(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:a})}),(0,t.jsx)("a",{href:eY(e),download:a,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${a}`,children:(0,t.jsx)(eQ.DownloadIcon,{className:"h-4 w-4"})})]})]})]}):(0,t.jsx)("a",{href:eY(e),download:a,"data-testid":"inline-attachment-file",className:"text-primary text-sm underline underline-offset-2",children:a})}let e5=(0,e.i(94237).cva)("inline-block shrink-0",{variants:{size:{sm:"size-5",md:"size-8",lg:"size-12"}},defaultVariants:{size:"md"}}),e3=[{r:9,spline:"0.12 0 0.04 1",opacity:1},{r:8.2,spline:"0.16 0 0.08 1",opacity:.95},{r:7.4,spline:"0.20 0 0.12 1",opacity:.9},{r:6.6,spline:"0.25 0 0.16 1",opacity:.84},{r:5.8,spline:"0.30 0 0.20 1",opacity:.76},{r:5,spline:"0.36 0 0.25 1",opacity:.67},{r:4.2,spline:"0.42 0 0.31 1",opacity:.56},{r:3.4,spline:"0.48 0 0.37 1",opacity:.44},{r:2.6,spline:"0.55 0 0.44 1",opacity:.32},{r:1.8,spline:"0.62 0 0.52 1",opacity:.2},{r:1,spline:"0.70 0 0.60 1",opacity:.1}];function e4({className:e,size:s="md",duration:a=5,...r}){return(0,t.jsxs)("svg",{"data-slot":"comet-spinner",role:"status","aria-label":"Loading",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",className:(0,K.cn)(e5({size:s}),e),...r,children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("filter",{id:"comet-gooey",x:"-100%",y:"-100%",width:"300%",height:"300%",colorInterpolationFilters:"sRGB",children:[(0,t.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"2.5"}),(0,t.jsx)("feColorMatrix",{mode:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 50 -30",result:"goo"})]})}),(0,t.jsxs)("g",{filter:"url(#comet-gooey)",children:[(0,t.jsx)("animateTransform",{attributeName:"transform",type:"rotate",from:"0 50 50",to:"360 50 50",dur:`${a}s`,repeatCount:"indefinite"}),e3.map(e=>(0,t.jsxs)("g",{children:[(0,t.jsx)("animateTransform",{attributeName:"transform",type:"rotate",calcMode:"spline",values:"0 50 50;360 50 50",keyTimes:"0;1",keySplines:e.spline,dur:"1s",repeatCount:"indefinite"}),(0,t.jsx)("circle",{cx:"50",cy:"18",r:e.r,fill:"currentColor",opacity:e.opacity})]},e.r)),(0,t.jsxs)("circle",{cx:"50",cy:"50",r:"4",fill:"currentColor",opacity:"0.15",children:[(0,t.jsx)("animate",{attributeName:"r",values:"3;5;3",dur:"2s",repeatCount:"indefinite"}),(0,t.jsx)("animate",{attributeName:"opacity",values:"0.1;0.25;0.1",dur:"2s",repeatCount:"indefinite"})]})]})]})}e.i(47506);var e6=e.i(2929),e8=e.i(86782),e7=e.i(29847);function e9(e){if(0===e)return"0s";let t=Math.floor(e/1e3);if(0===t)return"<1s";let s=Math.floor(t/3600),a=Math.floor(t%3600/60),r=t%60;return s>0?`${s}h ${a}m`:a>0?`${a}m ${r}s`:`${r}s`}let te=(0,J.default)("git-merge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);var tt=e.i(59311);function ts({syncStatus:e,syncLoading:s,syncError:r,onRefreshSync:n,onRebaseOnMain:l,rebaseLoading:i,rebaseError:o}){let{t:d}=(0,a.useTranslation)("web"),c=null!=e&&e.behind>0,u=e?.behind===0,m=e?.baseBranch??"main";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Separator,{}),(0,t.jsxs)("div",{"data-testid":"branch-sync-status",className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)("div",{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"BRANCH SYNC"}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:s&&!e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e4,{size:"sm",className:"shrink-0"}),(0,t.jsx)("span",{className:"text-muted-foreground text-sm",children:"Checking..."})]}):r?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Y.AlertTriangle,{className:"h-4 w-4 shrink-0 text-red-500"}),(0,t.jsx)("span",{className:"text-sm text-red-600",children:r})]}):i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e4,{size:"sm",className:"shrink-0"}),(0,t.jsxs)("span",{className:"text-sm",children:["Rebasing on"," ",(0,t.jsx)("code",{className:"bg-muted rounded px-1 py-0.5 font-mono text-xs",children:m}),"..."]})]}):c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Y.AlertTriangle,{className:"h-4 w-4 shrink-0 text-orange-500"}),(0,t.jsxs)("span",{className:"text-sm",children:[e.behind," commit",1===e.behind?"":"s"," behind"," ",(0,t.jsx)("code",{className:"bg-muted rounded px-1 py-0.5 font-mono text-xs",children:m}),e.ahead>0?(0,t.jsxs)("span",{className:"text-muted-foreground ms-1",children:["· ",e.ahead," ahead"]}):null]})]}):u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ew.CheckCircle2,{className:"h-4 w-4 shrink-0 text-green-500"}),(0,t.jsxs)("span",{className:"text-sm",children:["Up to date with"," ",(0,t.jsx)("code",{className:"bg-muted rounded px-1 py-0.5 font-mono text-xs",children:m}),e.ahead>0?(0,t.jsxs)("span",{className:"text-muted-foreground ms-1",children:["· ",e.ahead," ahead"]}):null]})]}):null}),(e||r)&&!i?(0,t.jsx)("button",{"data-testid":"sync-refresh-button",onClick:n,disabled:s,className:"text-muted-foreground hover:text-foreground inline-flex items-center rounded p-1 transition-colors disabled:opacity-50","aria-label":d("branchSyncStatus.refreshSyncStatus"),children:(0,t.jsx)(tt.RefreshCw,{className:`h-3.5 w-3.5 ${s?"animate-spin":""}`})}):null]}),c&&!i?(0,t.jsx)(D.ActionButton,{label:d("branchSyncStatus.rebaseOnMain"),onClick:l,loading:!1,error:!!o,icon:te,variant:"outline",size:"sm"}):null,o?(0,t.jsx)("p",{className:"text-destructive text-xs",children:o}):null]})]})}function ta({data:e,syncStatus:s,syncLoading:a,syncError:r,onRefreshSync:n,onRebaseOnMain:l,rebaseLoading:i,rebaseError:o}){let c="maintain"===e.lifecycle;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"feature-drawer-status",className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)("div",{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:e6.lifecycleDisplayLabels[e.lifecycle]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(tr,{data:e}),"error"===e.state&&e.onRetry?(0,t.jsxs)("button",{"data-testid":"feature-drawer-retry-button",onClick:()=>e.onRetry(e.featureId),className:"flex shrink-0 cursor-pointer items-center gap-1.5 rounded-full bg-red-50 px-3 py-1.5 text-sm font-medium text-red-700 transition-colors hover:bg-red-100",children:[(0,t.jsx)(eH.RotateCcw,{className:"h-3.5 w-3.5"}),"Retry"]}):null,("running"===e.state||"action-required"===e.state)&&e.onStop?(0,t.jsxs)("button",{"data-testid":"feature-drawer-stop-button",onClick:()=>e.onStop(e.featureId),className:"flex shrink-0 cursor-pointer items-center gap-1.5 rounded-full bg-red-50 px-3 py-1.5 text-sm font-medium text-red-700 transition-colors hover:bg-red-100",children:[(0,t.jsx)(d.Square,{className:"h-3.5 w-3.5"}),"Stop"]}):null]}),!c&&e.progress>0?(0,t.jsxs)("div",{"data-testid":"feature-drawer-progress",className:"flex flex-col gap-1",children:[(0,t.jsxs)("div",{className:"text-muted-foreground flex items-center justify-between text-xs",children:[(0,t.jsx)("span",{children:"Progress"}),(0,t.jsxs)("span",{children:[e.progress,"%"]})]}),(0,t.jsx)("div",{className:"bg-muted h-2 w-full overflow-hidden rounded-full",children:(0,t.jsx)("div",{className:(0,K.cn)("h-full rounded-full transition-all",e6.featureNodeStateConfig[e.state].progressClass),style:{width:`${e.progress}%`}})})]}):null,c&&e.pr?(0,t.jsx)(ti,{pr:e.pr,hideCiStatus:e.hideCiStatus}):null]}),(0,t.jsx)(tn,{data:e}),!c&&e.pr?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Separator,{}),(0,t.jsx)("div",{className:"p-4",children:(0,t.jsx)(ti,{pr:e.pr,hideCiStatus:e.hideCiStatus})})]}):null,(0,t.jsx)(to,{data:e}),l&&e.branch&&n?(0,t.jsx)(ts,{syncStatus:s??null,syncLoading:a??!1,syncError:r??null,onRefreshSync:n,onRebaseOnMain:l,rebaseLoading:i??!1,rebaseError:o??null}):null,(0,t.jsx)(tu,{data:e})]})}function tr({data:e}){let s=e6.featureNodeStateConfig[e.state],a=s.icon;return(0,t.jsxs)("div",{className:(0,K.cn)("flex items-center gap-2 rounded-full px-3 py-1.5 text-sm font-medium",s.badgeBgClass,s.badgeClass),children:["running"===e.state?(0,t.jsx)(e4,{size:"sm",className:"shrink-0"}):(0,t.jsx)(a,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:s.label})]})}function tn({data:e}){var s;let r,n,l,i,o,{t:d}=(0,a.useTranslation)("web"),c=!!e.summary&&!(e.userQuery&&e.summary?.trim()===e.userQuery.trim());return e.branch||e.oneLiner||c||e.userQuery||e.createdAt?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Separator,{}),(0,t.jsxs)("div",{"data-testid":"feature-drawer-info",className:"flex flex-col gap-3 p-4",children:[e.branch?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Branch"}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-sm",children:[(0,t.jsx)(eg.GitBranch,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("code",{className:"bg-muted rounded px-1 py-0.5 font-mono text-xs",children:e.branch}),e.baseBranch?(0,t.jsxs)("span",{className:"text-muted-foreground text-xs",children:["from ",e.baseBranch]}):null]})]}):null,e.oneLiner?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"One-Liner"}),(0,t.jsx)("span",{className:"text-sm leading-relaxed",children:e.oneLiner})]}):null,e.userQuery?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"User Query"}),(0,t.jsx)(e1,{text:e.userQuery})]}):null,c?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Summary"}),(0,t.jsx)("span",{className:"text-sm leading-relaxed",children:e.summary})]}):null,e.createdAt?(0,t.jsx)(tm,{label:d("overviewTab.created"),value:(s=e.createdAt,r=Date.now(),(o=Math.floor((i=Math.floor((l=Math.floor(Math.floor((r-(n="string"==typeof s?new Date(s).getTime():s))/1e3)/60))/60))/24))>30?new Date(n).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):o>0?`${o} day${1===o?"":"s"} ago`:i>0?`${i} hour${1===i?"":"s"} ago`:l>0?`${l} minute${1===l?"":"s"} ago`:"just now")}):null]})]}):null}let tl={[eC.PrStatus.Open]:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",[eC.PrStatus.Merged]:"border-transparent bg-purple-50 text-purple-700 hover:bg-purple-50",[eC.PrStatus.Closed]:"border-transparent bg-red-50 text-red-700 hover:bg-red-50"};function ti({pr:e,hideCiStatus:s}){return(0,t.jsx)("div",{"data-testid":"feature-drawer-pr",children:(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-primary flex items-center gap-1.5 text-sm font-semibold underline underline-offset-2",children:["PR #",e.number,(0,t.jsx)(x.ExternalLink,{className:"h-3.5 w-3.5"})]}),(0,t.jsx)(Q.Badge,{className:tl[e.status],children:e.status})]}),e.ciStatus&&!0!==s?(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"CI Status"}),(0,t.jsx)(eS,{status:e.ciStatus})]}):null,!1===e.mergeable?(0,t.jsxs)("div",{"data-testid":"pr-merge-conflict",className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Merge Status"}),(0,t.jsxs)(Q.Badge,{className:"border-transparent bg-orange-50 text-orange-700 hover:bg-orange-50",children:[(0,t.jsx)(Y.AlertTriangle,{className:"me-1 h-3.5 w-3.5"}),"Conflicts"]})]}):null,e.commitHash?(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Commit"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(ef.GitCommitHorizontal,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("code",{className:"bg-muted text-foreground rounded-md px-1.5 py-0.5 font-mono text-[11px]",children:e.commitHash.slice(0,7)})]})]}):null]})})}function to({data:e}){let{t:r}=(0,a.useTranslation)("web"),n=function(e){let[t,a]=(0,s.useState)(null),r=(0,s.useRef)(null);return(0,s.useEffect)(()=>e?(a(e9(Math.max(0,Date.now()-e))),r.current=setInterval(()=>{a(e9(Math.max(0,Date.now()-e)))},1e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}):void a(null),[e]),t}("running"===e.state||"action-required"===e.state?e.startedAt:void 0);return e.fastMode??e.agentType??e.runtime??n??e.blockedBy??e.errorMessage?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Separator,{}),(0,t.jsxs)("div",{"data-testid":"feature-drawer-details",className:"flex flex-col gap-3 p-4",children:[e.fastMode?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Mode"}),(0,t.jsxs)("span",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(eG.Zap,{className:"h-4 w-4 shrink-0 text-amber-500"}),"Fast Mode"]})]}):null,e.agentType?(0,t.jsx)(td,{agentType:e.agentType}):null,e.runtime?(0,t.jsx)(tm,{label:r("overviewTab.runtime"),value:e.runtime}):null,!e.runtime&&n?(0,t.jsx)(tm,{label:r("overviewTab.runningFor"),value:n}):null,e.blockedBy?(0,t.jsx)(tm,{label:r("overviewTab.blockedBy"),value:e.blockedBy}):null,e.errorMessage?(0,t.jsx)(tm,{label:r("overviewTab.error"),value:e.errorMessage}):null]})]}):null}function td({agentType:e}){let s=(0,e8.getAgentTypeIcon)(e),a=e8.agentTypeLabels[e]??e;return(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Agent"}),(0,t.jsxs)("span",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(s,{className:"h-4 w-4 shrink-0"}),a]})]})}function tc({enabled:e,label:s}){return(0,t.jsxs)("span",{className:(0,K.cn)("inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium",e?"bg-emerald-50 text-emerald-700":"bg-muted text-muted-foreground"),children:[e?(0,t.jsx)(u.Check,{className:"h-3 w-3"}):(0,t.jsx)(eW.X,{className:"h-3 w-3"}),s]})}function tu({data:e}){let{t:s}=(0,a.useTranslation)("web");return null!=e.approvalGates||null!=e.push||null!=e.openPr||null!=e.ciWatchEnabled||null!=e.enableEvidence||null!=e.forkAndPr||null!=e.commitSpecs||e.modelId?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(H.Separator,{}),(0,t.jsxs)("div",{"data-testid":"feature-drawer-settings",className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"SETTINGS"}),e.modelId?(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Model"}),(0,t.jsx)("span",{className:"text-sm",children:(0,e7.getModelMeta)(e.modelId).displayName||e.modelId})]}):null,e.approvalGates?(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(eV,{className:"h-3 w-3"}),"Auto-Approve"]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)(tc,{enabled:e.approvalGates.allowPrd,label:s("overviewTab.prd")}),(0,t.jsx)(tc,{enabled:e.approvalGates.allowPlan,label:s("overviewTab.plan")}),(0,t.jsx)(tc,{enabled:e.approvalGates.allowMerge,label:s("overviewTab.merge")})]})]}):null,null!=e.enableEvidence?(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(eU,{className:"h-3 w-3"}),"Evidence"]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)(tc,{enabled:e.enableEvidence,label:s("overviewTab.collect")}),null!=e.commitEvidence?(0,t.jsx)(tc,{enabled:e.commitEvidence,label:s("overviewTab.addToPr")}):null]})]}):null,null!=e.push||null!=e.openPr||null!=e.ciWatchEnabled||null!=e.commitSpecs||null!=e.forkAndPr?(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(eg.GitBranch,{className:"h-3 w-3"}),"Git"]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[null!=e.push?(0,t.jsx)(tc,{enabled:e.push,label:s("overviewTab.push")}):null,null!=e.openPr?(0,t.jsx)(tc,{enabled:e.openPr,label:s("overviewTab.pr")}):null,null!=e.ciWatchEnabled?(0,t.jsx)(tc,{enabled:e.ciWatchEnabled,label:s("overviewTab.watch")}):null,null!=e.commitSpecs?(0,t.jsx)(tc,{enabled:e.commitSpecs,label:s("overviewTab.commitSpecs")}):null,null!=e.forkAndPr?(0,t.jsx)(tc,{enabled:e.forkAndPr,label:s("overviewTab.forkAndPr")}):null]})]}):null]})]}):null}function tm({label:e,value:s}){return(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:e}),(0,t.jsx)("span",{className:"text-sm",children:s})]})}var tx=e.i(55016);let tp=(0,J.default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var ek=ek,th=e.i(94819),tf=e.i(48109),tg=e.i(58860);let tb=(0,J.default)("arrow-down-to-line",[["path",{d:"M12 17V3",key:"1cwfxf"}],["path",{d:"m6 11 6 6 6-6",key:"12ii2o"}],["path",{d:"M19 21H5",key:"150jfl"}]]),tj=(0,J.default)("arrow-up-from-line",[["path",{d:"m18 9-6-6-6 6",key:"kcunyi"}],["path",{d:"M12 3v14",key:"7cf3v8"}],["path",{d:"M5 21h14",key:"11awu3"}]]);function tv(e,t){if(null!=e.durationMs&&e.durationMs>0)return e.durationMs;if(!e.completedAt&&e.startedAt){let s=new Date(e.startedAt).getTime();if(!Number.isNaN(s))return Math.max(0,t-s)}return 0}function tN(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function ty(e){let t=e instanceof Date?e:new Date(String(e));return Number.isNaN(t.getTime())?"":t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function tw(e){return e>=1?`$${e.toFixed(2)}`:e>=.01?`$${e.toFixed(3)}`:`$${e.toFixed(4)}`}let tk={analyze:"Analyzing",requirements:"Requirements",research:"Researching",plan:"Planning",implement:"Implementing",rebase:"Rebasing","fast-implement":"Fast Implement",evidence:"Evidence",validate:"Validating",repair:"Repairing",merge:"Merging"},tC={"run:started":{label:"started",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:o.Play},"run:resumed":{label:"resumed",colorClass:"text-blue-600",bgClass:"bg-blue-50 dark:bg-blue-950/30",icon:eH.RotateCcw},"run:completed":{label:"completed",colorClass:"text-emerald-600",bgClass:"bg-emerald-50 dark:bg-emerald-950/30",icon:ew.CheckCircle2},"run:failed":{label:"failed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:ek.default},"run:stopped":{label:"stopped",colorClass:"text-amber-600",bgClass:"bg-amber-50 dark:bg-amber-950/30",icon:d.Square},"run:crashed":{label:"crashed",colorClass:"text-red-600",bgClass:"bg-red-50 dark:bg-red-950/30",icon:ek.default},"run:rejected":{label:"rejected",colorClass:"text-orange-600",bgClass:"bg-orange-50 dark:bg-orange-950/30",icon:th.Ban}};function tS(e){return e.startsWith("run:")}function tT({timings:e,loading:r,error:n,rejectionFeedback:i}){let{t:o}=(0,a.useTranslation)("web"),d=function(e){let[t,a]=(0,s.useState)(Date.now),r=(0,s.useRef)(null);return(0,s.useEffect)(()=>(e&&e.some(e=>!e.phase.startsWith("run:")&&!e.completedAt&&e.startedAt)&&(r.current=setInterval(()=>a(Date.now()),1e3)),()=>{r.current&&(clearInterval(r.current),r.current=null)}),[e]),t}(e);if(r)return(0,t.jsx)("div",{"data-testid":"activity-tab-loading",className:"flex items-center justify-center p-8",children:(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})});if(n)return(0,t.jsxs)("div",{className:"flex items-center gap-2 p-4 text-base text-red-600",children:[(0,t.jsx)(O.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:n})]});if(!e||0===e.length)return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,t.jsx)(tx.Clock,{className:"text-muted-foreground h-8 w-8"}),(0,t.jsx)("p",{className:"text-muted-foreground text-base",children:o("activityTab.noActivityRecorded")})]});let c=e.filter(e=>!tS(e.phase)),u=Math.max(...c.map(e=>tv(e,d)),...c.map(e=>e.approvalWaitMs??0),0),m=function(e,t){if(!e.length)return[];let s=e.filter(e=>"run:rejected"===e.phase).length,a=t?.length??0,r=e;if(a>s){r=[...e];let n=e[e.length-1].agentRunId;for(let e=s;e<a;e++){let a=t[e];e>s&&r.push({agentRunId:n,phase:"run:resumed",startedAt:a.timestamp??`synthetic-resumed-${e}`}),r.push({agentRunId:n,phase:"run:rejected",startedAt:a.timestamp??`synthetic-${e}`})}}let n=[],l=[],i=0;for(let e of r)if(l.push(e),"run:rejected"===e.phase){let e=t?.[i];n.push({number:n.length+1,timings:l,rejectionMessage:e?.message,rejectionAttachments:e?.attachments}),l=[],i++}return l.length>0&&n.push({number:n.length+1,timings:l}),n}(e,i),x=m.length>1,p=c.reduce((e,t)=>e+tv(t,d),0),h=c.reduce((e,t)=>e+(t.approvalWaitMs??0),0),f=c.reduce((e,t)=>e+(t.inputTokens??0),0),g=c.reduce((e,t)=>e+(t.outputTokens??0),0),b=c.reduce((e,t)=>e+(t.costUsd??0),0);return(0,t.jsxs)("div",{className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)("div",{"data-testid":"activity-timings",className:"flex flex-col gap-3",children:m.map(e=>(0,t.jsx)(tM,{iteration:e,showHeader:x,maxDurationMs:u,now:d},e.number))}),p>0?(0,t.jsx)(tP,{totalExecMs:p,totalWaitMs:h,totalInputTokens:f,totalOutputTokens:g,totalCostUsd:b}):null]})}function tM({iteration:e,showHeader:s,maxDurationMs:a,now:r}){let n=function(e){let t=[...e.timings].reverse().find(e=>tS(e.phase));if(!t)return null;switch(t.phase){case"run:rejected":return{label:"Rejected",colorClass:"text-orange-600",dotClass:"bg-orange-500"};case"run:completed":return{label:"Completed",colorClass:"text-emerald-600",dotClass:"bg-emerald-500"};case"run:failed":return{label:"Failed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:crashed":return{label:"Crashed",colorClass:"text-red-600",dotClass:"bg-red-500"};case"run:stopped":return{label:"Stopped",colorClass:"text-amber-600",dotClass:"bg-amber-500"};default:return null}}(e);return(0,t.jsxs)("div",{"data-testid":`iteration-${e.number}`,className:"border-border/50 bg-card/50 flex flex-col overflow-hidden rounded-lg border",children:[s?(0,t.jsxs)("div",{className:"bg-muted/30 border-border/50 flex items-center justify-between border-b px-3 py-1.5",children:[(0,t.jsxs)("span",{className:"text-muted-foreground text-sm font-semibold tracking-wide",children:["Iteration ",e.number]}),n?(0,t.jsxs)("span",{className:`flex items-center gap-1 text-xs font-medium ${n.colorClass}`,children:[(0,t.jsx)("span",{className:`inline-block h-1.5 w-1.5 rounded-full ${n.dotClass}`}),n.label]}):null]}):null,(0,t.jsxs)("div",{className:"relative flex flex-col",children:[(0,t.jsx)("div",{className:"bg-border/60 absolute top-4 bottom-4 left-[21.5px] w-px"}),e.timings.map((s,n)=>{if(tS(s.phase)){let a,r="run:rejected"===s.phase,l="run:failed"===s.phase||"run:crashed"===s.phase||"run:stopped"===s.phase;if(r)a=e.rejectionMessage;else if(l){let t=[...e.timings].reverse().find(e=>!tS(e.phase)&&e.errorMessage);a=t?.errorMessage??s.errorMessage}return(0,t.jsx)(tR,{timing:s,message:a,attachments:r?e.rejectionAttachments:void 0,isFirst:0===n,isLast:n===e.timings.length-1},`${s.agentRunId}-${s.phase}-${s.startedAt}`)}return(0,t.jsx)(tI,{timing:s,maxDurationMs:a,now:r},`${s.agentRunId}-${s.phase}-${s.startedAt}`)})]})]})}function tR({timing:e,message:s,attachments:a,isFirst:r,isLast:n}){let l,i=tC[e.phase];if(!i)return null;let o=a&&a.length>0,d=i.icon;return(0,t.jsxs)("div",{className:`relative flex flex-col gap-1 px-3 ${r?"pt-2":"pt-1"} ${n?"pb-2":"pb-1"}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`relative z-10 flex h-5 w-5 shrink-0 items-center justify-center rounded-full ${i.bgClass}`,children:(0,t.jsx)(d,{className:`h-3 w-3 ${i.colorClass}`})}),(0,t.jsx)("span",{className:`text-sm font-medium ${i.colorClass}`,children:i.label}),e.startedAt&&!("string"==typeof e.startedAt&&e.startedAt.startsWith("synthetic"))?(0,t.jsx)("span",{className:"text-muted-foreground/60 ml-auto text-xs tabular-nums",children:ty(String(e.startedAt))}):null]}),s?(l="run:failed"===e.phase||"run:crashed"===e.phase||"run:stopped"===e.phase,(0,t.jsxs)("div",{className:`ml-[26px] flex items-start gap-1.5 rounded-md px-2 py-1.5 ${l?"bg-red-50/50 dark:bg-red-950/20":"bg-orange-50/50 dark:bg-orange-950/20"}`,children:[l?(0,t.jsx)(O.AlertCircle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-400"}):(0,t.jsx)(tf.MessageSquare,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-orange-400"}),(0,t.jsxs)("span",{"data-testid":l?"error-message-text":"rejection-feedback-text",className:"text-muted-foreground text-xs leading-relaxed italic",children:["— ",s]})]})):null,o?(0,t.jsx)("div",{"data-testid":"rejection-feedback-attachments",className:"ml-[26px]",children:(0,t.jsx)(e1,{text:"",attachmentPaths:a})}):null]})}function tI({timing:e,maxDurationMs:r,now:n}){let{t:l}=(0,a.useTranslation)("web"),i=e.phase.includes(":")?e.phase.split(":")[0]:e.phase,o=e.phase.includes(":")?e.phase.split(":")[1]:null,d=null!==o,m=o?.startsWith("phase-")??!1,x=tk[i]??i,p=m?`Phase ${o.replace("phase-","")}`:null!==o?`${x} #${o}`:x,h=tv(e,n),f=!e.completedAt&&!!e.startedAt,g=f?15:2,b=r>0?Math.max(g,h/r*100):g,j=e.completedAt?m?"bg-emerald-400":d?"bg-amber-500":"bg-emerald-500":"bg-blue-500",v=null!=e.inputTokens||null!=e.outputTokens?(e.inputTokens??0)+(e.outputTokens??0):null,[N,y]=(0,s.useState)(!1),w=(0,s.useCallback)(()=>{e.prompt&&navigator.clipboard.writeText(e.prompt).then(()=>{y(!0),setTimeout(()=>y(!1),1500)})},[e.prompt]);return(0,t.jsxs)("div",{className:`group/phase relative flex flex-col gap-0.5 px-3 py-1.5 ${d?"ms-4":""}`,children:[(0,t.jsxs)("div",{"data-testid":`timing-bar-${e.phase}`,className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"relative z-10 flex h-5 w-5 shrink-0 items-center justify-center",children:(0,t.jsx)("div",{className:`rounded-full ${f?"h-3 w-3 animate-pulse":"h-2.5 w-2.5"} ${f?"bg-blue-500":e.completedAt?"bg-emerald-500":"bg-muted-foreground/30"}`})}),(0,t.jsx)("span",{className:`w-28 shrink-0 truncate text-sm font-medium ${d?"text-muted-foreground":"text-foreground/80"}`,children:p}),e.prompt?(0,t.jsx)("button",{type:"button",onClick:w,className:"text-muted-foreground/50 hover:text-foreground/70 -ms-1 shrink-0 opacity-0 transition-opacity group-hover/phase:opacity-100",title:l("activityTab.copyPromptToClipboard"),children:N?(0,t.jsx)(u.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(c.Copy,{className:"h-3.5 w-3.5"})}):null,(0,t.jsx)("div",{className:`bg-muted relative min-w-0 flex-1 overflow-hidden rounded-full ${d?"h-1.5":"h-2"}`,children:f?(0,t.jsx)("div",{className:"absolute inset-0 rounded-full bg-blue-500/30",style:{backgroundImage:"linear-gradient(90deg, transparent 0%, rgb(59 130 246) 50%, transparent 100%)",backgroundSize:"200% 100%",animation:"shimmer 1.5s ease-in-out infinite"}}):(0,t.jsx)("div",{className:`h-full rounded-full transition-all duration-300 ${j}`,style:{width:`${Math.min(b,100)}%`}})}),(0,t.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-sm font-medium tabular-nums",children:e9(h)})]}),(0,t.jsxs)("div",{className:"ml-[28px] flex items-center gap-3 text-xs",children:[e.startedAt?(0,t.jsx)("span",{className:"text-muted-foreground/60 tabular-nums",children:ty(e.startedAt)}):null,null!=v&&v>0?(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,t.jsx)(eG.Zap,{className:"h-3 w-3 opacity-50"}),tN(v)]}):null,null!=e.costUsd&&e.costUsd>0?(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5",children:[(0,t.jsx)(tp,{className:"h-3 w-3 opacity-50"}),tw(e.costUsd)]}):null]}),null!=e.approvalWaitMs&&e.approvalWaitMs>0?(0,t.jsx)(tA,{timing:e,maxDurationMs:r}):null]})}function tA({timing:e,maxDurationMs:s}){let a=e.approvalWaitMs??0,r=s>0?Math.max(2,a/s*100):2;return(0,t.jsxs)("div",{"data-testid":`approval-wait-${e.phase}`,className:"ml-[26px] flex items-center gap-2 rounded-md bg-amber-50/50 px-1.5 py-1 dark:bg-amber-950/20",children:[(0,t.jsx)(tg.Timer,{className:"h-3.5 w-3.5 shrink-0 text-amber-500"}),(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs",children:"approval"}),(0,t.jsx)("div",{className:"bg-muted h-1.5 min-w-0 flex-1 overflow-hidden rounded-full",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-amber-500",style:{width:`${Math.min(r,100)}%`}})}),(0,t.jsx)("span",{className:"text-muted-foreground w-14 shrink-0 text-end text-xs tabular-nums",children:e9(a)})]})}function tP({totalExecMs:e,totalWaitMs:s,totalInputTokens:r,totalOutputTokens:n,totalCostUsd:l}){let{t:i}=(0,a.useTranslation)("web"),o=r+n;return(0,t.jsxs)("div",{"data-testid":"activity-summary",className:"border-border bg-card/30 flex flex-col gap-2 rounded-lg border p-3",children:[(0,t.jsx)("div",{className:"text-muted-foreground mb-1 text-xs font-semibold tracking-wider uppercase",children:"Summary"}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-3",children:[(0,t.jsx)(t$,{icon:tx.Clock,label:i("activityTab.execution"),value:e9(e)}),(0,t.jsx)(t$,{icon:tg.Timer,label:i("activityTab.wait"),value:s>0?e9(s):"n/a"}),(0,t.jsx)(t$,{icon:tx.Clock,label:"Wall-clock",value:s>0?e9(e+s):e9(e)}),(0,t.jsx)(t$,{icon:tp,label:i("activityTab.cost"),value:l>0?tw(l):"n/a"}),(0,t.jsxs)("div",{className:"col-span-2 flex flex-col gap-0.5",children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,t.jsx)(eG.Zap,{className:"h-3 w-3 opacity-40"}),"Tokens"]}),o>0?(0,t.jsxs)("span",{className:"flex items-center gap-2.5 text-sm tabular-nums",children:[(0,t.jsx)("span",{children:tN(o)}),(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-3 text-xs",title:"Input tokens / Output tokens",children:[(0,t.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(tb,{className:"h-3 w-3 text-blue-500 opacity-60"}),tN(r)]}),(0,t.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(tj,{className:"h-3 w-3 text-emerald-500 opacity-60"}),tN(n)]})]})]}):(0,t.jsx)("span",{className:"text-muted-foreground/40 text-sm italic tabular-nums",children:"n/a"})]})]})]})}function t$({icon:e,label:s,value:a,className:r=""}){let n="n/a"===a;return(0,t.jsxs)("div",{className:`flex flex-col gap-0.5 ${r}`,children:[(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-xs",children:[(0,t.jsx)(e,{className:"h-3 w-3 opacity-40"}),s]}),(0,t.jsx)("span",{className:`text-sm tabular-nums ${n?"text-muted-foreground/40 italic":""}`,children:a})]})}var tD=e.i(7311),tE=e.i(44229);let tL=(0,J.default)("coins",[["circle",{cx:"8",cy:"8",r:"6",key:"3yglwk"}],["path",{d:"M18.09 10.37A6 6 0 1 1 10.34 18",key:"t5s6rm"}],["path",{d:"M7 6h1v4",key:"1obek4"}],["path",{d:"m16.71 13.88.7.71-2.82 2.82",key:"1rbuyh"}]]),tz=(0,J.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),tF=(0,J.default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),tq=/^\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z?)\]\s+(?:\[([^\]]+)\]\s+)?(?:\[([^\]|]+)(?:\|([^\]]+))?\]\s+)?(.*)$/,tB=/^\[(tool-result|tool|text|delta|result|tokens|cmd|file|turn|thread|error|event|raw|WORKER)\]\s*(.*)/;function tO(e){let t=e.match(tq);if(!t)return{timestamp:null,phase:null,agent:null,model:null,tag:"raw",message:e,raw:e};let[,s,a,r,n,l]=t,i=null,o=null,d=null,c=l??"";if(null!=r&&null!=a)if(a.includes("|")){let[e,t]=a.split("|");o=e,d=t??null,c=`[${r}] ${l??""}`}else i=a,o=r,d=n??null;else if(null!=a)if(a.includes("|")){let[e,t]=a.split("|");o=e,d=t??null}else i=a;let u=c.match(tB),m="info";return u&&(m=u[1].toLowerCase(),c=u[2]),{timestamp:s??null,phase:i,agent:o,model:d,tag:m,message:c.trim(),raw:e}}function tU({content:e}){let a=(0,s.useMemo)(()=>e?e.split("\n").filter(e=>e.trim().length>0).map(tO):[],[e]);return 0===a.length?null:(0,t.jsx)("div",{className:"flex flex-col",children:a.map((e,s)=>(0,t.jsx)(tH,{line:e},s))})}function tH({line:e}){switch(e.tag){case"tool":return(0,t.jsx)(tG,{line:e});case"tool-result":return(0,t.jsx)(tX,{line:e});case"text":case"delta":return(0,t.jsx)(tK,{line:e});case"result":return(0,t.jsx)(tQ,{line:e});case"tokens":case"turn":return(0,t.jsx)(tZ,{line:e});case"cmd":return(0,t.jsx)(tY,{line:e});case"file":return(0,t.jsx)(t0,{line:e});case"thread":case"event":case"info":return(0,t.jsx)(t2,{line:e});case"error":return(0,t.jsx)(t1,{line:e});case"worker":return(0,t.jsx)(tJ,{line:e});default:return(0,t.jsx)(t5,{line:e})}}function tV({value:e}){if(!e)return null;let s=e.replace(/^.*T/,"").replace("Z",""),a=s.split(":"),r=a.length>=3?`${a[1]}:${a[2].split(".")[0]}`:s;return(0,t.jsx)("span",{className:"text-muted-foreground/60 w-11 shrink-0 font-mono text-[10px]",children:r})}function tW({phase:e}){return e?(0,t.jsx)("span",{className:"bg-muted text-muted-foreground w-20 shrink-0 truncate rounded px-1.5 py-0.5 font-mono text-[10px] font-medium",title:e,children:e}):(0,t.jsx)("span",{className:"w-20 shrink-0"})}function tG({line:e}){var s;let a,{toolName:r,args:n}=-1===(a=(s=e.message).indexOf(" "))?{toolName:s,args:""}:{toolName:s.slice(0,a),args:s.slice(a+1)},l=function(e,t){try{let s=JSON.parse(t);if("Read"===e&&s.file_path||"Write"===e&&s.file_path||"Edit"===e&&s.file_path)return s.file_path;if("Glob"===e&&s.pattern||"Grep"===e&&s.pattern)return s.pattern;if("Bash"===e&&s.command)return s.command;if("Task"===e&&s.description)return s.description}catch{if(t.length>0)return t}return null}(r,n);return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 border-b border-transparent px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(t_,{toolName:r}),(0,t.jsx)("span",{className:"text-xs font-semibold text-violet-600 dark:text-violet-400",children:r}),l?(0,t.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-xs break-all",children:l}):null]})]})}function t_({toolName:e}){let s=e.toLowerCase();return"bash"===s?(0,t.jsx)(E.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"read"===s||"glob"===s||"grep"===s?(0,t.jsx)(ev.FileText,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):"write"===s||"edit"===s?(0,t.jsx)(tF,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"}):(0,t.jsx)(E.Terminal,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-500"})}function tK({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(tf.MessageSquare,{className:"mt-0.5 h-3 w-3 shrink-0 text-blue-500"}),(0,t.jsx)("span",{className:"text-foreground/80 min-w-0 text-xs leading-relaxed",children:e.message})]})]})}function tQ({line:e}){var s;let a,r,{chars:n}=(a=(s=e.message).match(/^(\d+)\s+chars/),r=s.match(/session=(\S+)/),{chars:a?parseInt(a[1],10):0,sessionId:r?r[1]:null});return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(ew.CheckCircle2,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-500"}),(0,t.jsxs)("span",{className:"text-xs font-medium text-emerald-600 dark:text-emerald-400",children:["Result: ",n.toLocaleString()," chars"]})]})]})}function tZ({line:e}){let s,{inputTokens:a,outputTokens:r}=(s=e.message.match(/^(\d+)\s+in\s*\/\s*(\d+)\s+out/))?{inputTokens:parseInt(s[1],10),outputTokens:parseInt(s[2],10)}:{inputTokens:0,outputTokens:0};return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(tL,{className:"mt-0.5 h-3 w-3 shrink-0 text-amber-500"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-xs",children:[(0,t.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:a.toLocaleString()})," in / ",(0,t.jsx)("span",{className:"text-amber-600 dark:text-amber-400",children:r.toLocaleString()})," out"]})]})]})}function tJ({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-zinc-50 px-3 py-1.5 transition-colors dark:bg-zinc-900/50",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(tz,{className:"mt-0.5 h-3 w-3 shrink-0 text-zinc-500"}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium break-all",children:e.message})]})]})}function tX({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(eb,{className:"mt-0.5 h-3 w-3 shrink-0 text-violet-400"}),(0,t.jsx)("span",{className:"text-muted-foreground min-w-0 font-mono text-[11px] break-all",children:e.message})]})]})}function tY({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(o.Play,{className:"mt-0.5 h-3 w-3 shrink-0 text-cyan-500"}),(0,t.jsx)("span",{className:"min-w-0 font-mono text-xs break-all text-cyan-700 dark:text-cyan-400",children:e.message})]})]})}function t0({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(tF,{className:"mt-0.5 h-3 w-3 shrink-0 text-orange-500"}),(0,t.jsx)("span",{className:"min-w-0 text-xs break-all text-orange-700 dark:text-orange-400",children:e.message})]})]})}function t1({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 bg-red-50 px-3 py-1.5 transition-colors dark:bg-red-950/30",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-1.5",children:[(0,t.jsx)(O.AlertCircle,{className:"mt-0.5 h-3 w-3 shrink-0 text-red-500"}),(0,t.jsx)("span",{className:"min-w-0 text-xs font-medium break-all text-red-700 dark:text-red-400",children:e.message})]})]})}function t2({line:e}){return(0,t.jsxs)("div",{className:"hover:bg-muted/50 flex items-start gap-2 px-3 py-1.5 transition-colors",children:[(0,t.jsx)(tV,{value:e.timestamp}),(0,t.jsx)(tW,{phase:e.phase}),(0,t.jsx)("span",{className:"text-muted-foreground min-w-0 text-xs break-all",children:e.message})]})}function t5({line:e}){return(0,t.jsx)("div",{className:"px-3 py-0.5",children:(0,t.jsx)("span",{className:"text-muted-foreground/70 font-mono text-[11px] break-all whitespace-pre-wrap",children:e.raw})})}function t3({content:e,isConnected:r,error:n}){let{t:l}=(0,a.useTranslation)("web"),i=(0,s.useRef)(null),[o,d]=(0,s.useState)(!0),[c,u]=(0,s.useState)("structured"),m=(0,s.useCallback)(()=>{let e=i.current;e&&d(e.scrollHeight-e.scrollTop-e.clientHeight<40)},[]),x=(0,s.useCallback)(()=>{let e=i.current;e&&(e.scrollTop=e.scrollHeight,d(!0))},[]);return((0,s.useEffect)(()=>{o&&i.current&&(i.current.scrollTop=i.current.scrollHeight)},[e,o]),n)?(0,t.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,t.jsx)(O.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:n})]}):e?(0,t.jsxs)("div",{className:"flex h-full flex-col","data-testid":"log-tab",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b px-3 py-1.5",children:[(0,t.jsx)("span",{className:`h-2 w-2 rounded-full ${r?"bg-emerald-500":"bg-zinc-400"}`}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:r?"Live":"Disconnected"}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>u("structured"),className:`rounded p-1 transition-colors ${"structured"===c?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:l("logTab.structuredView"),children:(0,t.jsx)(ev.FileText,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{type:"button",onClick:()=>u("raw"),className:`rounded p-1 transition-colors ${"raw"===c?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"}`,title:l("logTab.rawView"),children:(0,t.jsx)(tE.Code,{className:"h-3.5 w-3.5"})}),o?null:(0,t.jsxs)("button",{type:"button",onClick:x,className:"text-muted-foreground hover:text-foreground ms-1 flex items-center gap-1 text-xs",children:[(0,t.jsx)(tD.ArrowDown,{className:"h-3 w-3"}),"Jump to bottom"]})]})]}),(0,t.jsx)("div",{ref:i,onScroll:m,className:`flex-1 overflow-y-auto ${"raw"===c?"bg-zinc-950 p-3 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap text-zinc-300":"bg-background"}`,children:"structured"===c?(0,t.jsx)(tU,{content:e}):e})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,t.jsx)(E.Terminal,{className:"text-muted-foreground h-8 w-8"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:l("logTab.noLogOutput")}),r?(0,t.jsx)("p",{className:"text-muted-foreground text-xs",children:"Waiting for log data..."}):null]})}let t4=(0,J.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]);var t6=e.i(95812),t8=e.i(87889);let t7=(0,J.default)("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),t9={Todo:{icon:t6.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Todo"},"Work in Progress":{icon:l.Loader2,colorClass:"text-blue-600",borderClass:"border-blue-200",spinning:!0,label:"In Progress"},Done:{icon:u.Check,colorClass:"text-emerald-600",borderClass:"border-emerald-200",label:"Done"},Review:{icon:t8.Eye,colorClass:"text-amber-600",borderClass:"border-amber-200",label:"Review"}},se={icon:t6.Circle,colorClass:"text-muted-foreground",borderClass:"border-border",label:"Unknown"};function st({tasks:e}){let{t:s}=(0,a.useTranslation)("web");return 0===e.length?(0,t.jsx)("div",{className:"flex flex-col items-center justify-center gap-2 py-4",children:(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:s("taskProgress.noTasksDefined")})}):(0,t.jsxs)("div",{"data-testid":"task-progress-view",className:"flex flex-col gap-3",children:[(0,t.jsx)(ss,{tasks:e}),(0,t.jsx)("div",{"data-testid":"task-progress-list",className:"flex flex-col gap-2",children:e.map((e,s)=>(0,t.jsx)(sr,{task:e,index:s},e.title||`task-${s}`))})]})}function ss({tasks:e}){let{t:r}=(0,a.useTranslation)("web"),n=(0,s.useMemo)(()=>{let t=e.filter(e=>"Done"===e.state).length,s=e.filter(e=>"Work in Progress"===e.state).length,a=e.filter(e=>"Review"===e.state).length,r=e.filter(e=>"Done"!==e.state&&"Work in Progress"!==e.state&&"Review"!==e.state).length,n=e.length,l=n>0?Math.round(t/n*100):0;return{done:t,wip:s,review:a,todo:r,total:n,percent:l}},[e]);return(0,t.jsxs)("div",{"data-testid":"task-progress-summary",className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Task Progress"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-xs",children:[n.done," of ",n.total," done"]})]}),(0,t.jsx)("div",{className:"bg-muted h-2 w-full overflow-hidden rounded-full",children:(0,t.jsx)("div",{"data-testid":"task-progress-bar",className:"h-full rounded-full bg-emerald-500 transition-all",style:{width:`${n.percent}%`}})}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[n.done>0?(0,t.jsx)(sa,{icon:u.Check,label:r("taskProgress.done"),count:n.done,className:"text-emerald-600"}):null,n.wip>0?(0,t.jsx)(sa,{icon:l.Loader2,label:r("taskProgress.inProgress"),count:n.wip,className:"text-blue-600"}):null,n.review>0?(0,t.jsx)(sa,{icon:t8.Eye,label:r("taskProgress.review"),count:n.review,className:"text-amber-600"}):null,n.todo>0?(0,t.jsx)(sa,{icon:t6.Circle,label:r("taskProgress.todo"),count:n.todo,className:"text-muted-foreground"}):null]})]})}function sa({icon:e,label:s,count:a,className:r}){return(0,t.jsxs)("span",{className:(0,K.cn)("flex items-center gap-1 text-xs",r),children:[(0,t.jsx)(e,{className:"h-3 w-3"}),a," ",s]})}function sr({task:e,index:a}){let[r,n]=(0,s.useState)(!1),l=t9[e.state]??se,i=l.icon,o=e.actionItems.length>0,d=(0,s.useCallback)(()=>{o&&n(e=>!e)},[o]);return(0,t.jsxs)("div",{"data-testid":`task-card-${a}`,className:(0,K.cn)("rounded-lg border",l.borderClass),children:[(0,t.jsxs)("button",{type:"button",onClick:d,disabled:!o,className:(0,K.cn)("flex w-full items-start gap-2 px-3 py-2.5 text-start",o&&"hover:bg-muted/50 cursor-pointer transition-colors"),children:[(0,t.jsx)(i,{className:(0,K.cn)("mt-0.5 h-4 w-4 shrink-0",l.colorClass,l.spinning&&"animate-spin")}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,t.jsx)("span",{className:(0,K.cn)("text-sm font-medium",l.colorClass),children:e.title}),e.description?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description}):null]}),o?(0,t.jsx)(_.ChevronRight,{className:(0,K.cn)("text-muted-foreground mt-0.5 h-4 w-4 shrink-0 transition-transform",r&&"rotate-90")}):null]}),r&&o?(0,t.jsx)("div",{className:"border-t px-3 py-2.5",children:(0,t.jsx)("div",{className:"flex flex-col gap-2",children:e.actionItems.map((e,s)=>(0,t.jsx)(sn,{item:e},e.name||`ai-${s}`))})}):null]})}function sn({item:e}){let s=e.acceptanceCriteria.length,a=e.acceptanceCriteria.filter(e=>e.verified).length,r=s>0&&a===s;return(0,t.jsxs)("div",{"data-testid":"action-item",className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[r?(0,t.jsx)(ew.CheckCircle2,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-emerald-600"}):(0,t.jsx)(t7,{className:"text-muted-foreground mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.name}),e.description?(0,t.jsx)("span",{className:"text-muted-foreground text-[11px]",children:e.description}):null]}),s>0?(0,t.jsxs)("span",{className:"text-muted-foreground ml-auto shrink-0 text-[11px]",children:[a,"/",s]}):null]}),s>0?(0,t.jsx)("div",{className:"ms-5.5 flex flex-col gap-1",children:e.acceptanceCriteria.map((e,s)=>(0,t.jsx)(sl,{criterion:e},e.description||`ac-${s}`))}):null]})}function sl({criterion:e}){return(0,t.jsxs)("div",{"data-testid":"acceptance-criterion",className:"flex items-start gap-1.5",children:[e.verified?(0,t.jsx)(u.Check,{className:"mt-0.5 h-3 w-3 shrink-0 text-emerald-600"}):(0,t.jsx)(t6.Circle,{className:"text-muted-foreground mt-0.5 h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:(0,K.cn)("text-[11px]",e.verified?"text-muted-foreground line-through":"text-foreground"),children:e.description})]})}let si={Requirements:"border-transparent bg-blue-50 text-blue-700 hover:bg-blue-50",ClarificationRequired:"border-transparent bg-amber-50 text-amber-700 hover:bg-amber-50",Ready:"border-transparent bg-green-50 text-green-700 hover:bg-green-50"};function so({plan:e,loading:s,error:a}){return s?(0,t.jsx)("div",{"data-testid":"plan-tab-loading",className:"flex items-center justify-center p-8",children:(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):a?(0,t.jsxs)("div",{className:"flex items-center gap-2 p-4 text-sm text-red-600",children:[(0,t.jsx)(O.AlertCircle,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:a})]}):e?(0,t.jsxs)("div",{className:"flex flex-col gap-4 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Plan State"}),(0,t.jsx)(Q.Badge,{className:si[e.state]??"border-transparent bg-gray-50 text-gray-700",children:e.state})]}),e.overview?(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Overview"}),(0,t.jsx)("p",{className:"text-sm leading-relaxed",children:e.overview})]}):null,(0,t.jsx)(st,{tasks:e.tasks})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-2 p-8",children:[(0,t.jsx)(t4,{className:"text-muted-foreground h-8 w-8"}),(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:"No plan created yet"})]})}var sd=e.i(28112);function sc(){return{data:null,loading:!1,error:null}}let su=[{key:"overview",label:"Overview"},{key:"activity",label:"Activity"},{key:"log",label:"Log"},{key:"plan",label:"Plan"},{key:"prd-review",label:"PRD Review"},{key:"tech-decisions",label:"Tech Decisions"},{key:"product-decisions",label:"Product"},{key:"merge-review",label:"Merge Review"},{key:"chat",label:"Chat"}],sm={activity:async function(e){let t=await V(e);if("error"in t)throw Error(t.error);return{timings:t.timings,rejectionFeedback:t.rejectionFeedback}},plan:async function(e){let t=await W(e);if("error"in t)throw Error(t.error);return t.plan}};function sx({featureName:e,headerContent:a,featureNode:n,featureId:i,initialTab:o,urlTab:d,prdData:c,prdSelections:u,onPrdSelect:m,onPrdApprove:x,onPrdReject:p,isPrdLoading:h,techData:f,onTechApprove:g,onTechReject:b,isTechLoading:j,productData:v,mergeData:N,onMergeApprove:y,onMergeReject:w,isMergeLoading:k,syncStatus:C,syncLoading:S,syncError:T,onRefreshSync:M,onRebaseOnMain:R,rebaseLoading:I,rebaseError:A,isRejecting:P,chatInput:$,onChatInputChange:D,sseEvents:E,interactiveAgentEnabled:L=!0}){let z=(0,r.usePathname)(),F=(0,s.useMemo)(()=>(function(e,t=!0){let s=["overview","activity"];return e.hasAgentRun&&s.push("log"),e.hasPlan&&s.push("plan"),"requirements"===e.lifecycle&&"action-required"===e.state&&s.push("prd-review"),"implementation"===e.lifecycle&&"action-required"===e.state&&s.push("tech-decisions","product-decisions"),"review"===e.lifecycle&&("action-required"===e.state||"error"===e.state)&&s.push("merge-review"),"maintain"===e.lifecycle&&e.pr&&s.push("merge-review"),t&&s.push("chat"),s})(n,L),[n,L]),q=(0,s.useMemo)(()=>su.filter(e=>F.includes(e.key)).map(e=>"merge-review"===e.key&&"maintain"===n.lifecycle?{...e,label:"Merge History"}:e),[F,n.lifecycle]),B=(0,s.useMemo)(()=>{let e=z.match(/^(\/feature\/[^/]+)/);return e?e[1]:z},[z]),V=(0,s.useMemo)(()=>d&&F.includes(d)?d:o&&F.includes(o)?o:"overview",[]),[W,G]=(0,s.useState)(V),_=function(e){let[t,a]=(0,s.useState)(""),[r,n]=(0,s.useState)(!1),[l,i]=(0,s.useState)(null),o=(0,s.useRef)(null),d=(0,s.useCallback)(()=>{o.current&&(o.current.close(),o.current=null),n(!1)},[]);return(0,s.useEffect)(()=>{if(!e){a(""),n(!1),i(null);return}a(""),i(null);let t=new EventSource(`/api/feature-logs?featureId=${e}`);return o.current=t,t.onopen=()=>{n(!0)},t.addEventListener("initial",e=>{a(JSON.parse(e.data).content)}),t.addEventListener("log",e=>{let t=JSON.parse(e.data);a(e=>e+t.content)}),t.addEventListener("error",e=>{try{let t=JSON.parse(e.data);i(t.error)}catch{i(e.data?String(e.data):"Log stream unavailable")}}),t.onerror=()=>{n(!1)},()=>{t.close(),o.current=null}},[e,d]),{content:t,isConnected:r,error:l}}("log"===W?i:null),{tabs:K,fetchTab:Q,refreshTab:Z}=function(e,t){let a=Object.keys(t),[r,n]=(0,s.useState)(()=>{let e={};for(let t of a)e[t]=sc();return e}),l=(0,s.useRef)(t);l.current=t;let i=(0,s.useRef)(e);i.current=e;let o=(0,s.useRef)(!0);(0,s.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let d=(0,s.useRef)(e);(0,s.useEffect)(()=>{d.current!==e&&(d.current=e,n(e=>{let t={};for(let s of Object.keys(e))t[s]=sc();return t}))},[e]);let c=(0,s.useCallback)(async e=>{let t=l.current[e],s=i.current;if(t){o.current&&n(t=>t[e]?.data!==null?t:{...t,[e]:{...t[e],loading:!0,error:null}});try{let a=await t(s);o.current&&n(t=>({...t,[e]:{data:a,loading:!1,error:null}}))}catch(t){o.current&&n(s=>{let a=t instanceof Error?t.message:"Failed to fetch tab data",r=s[e]?.data??null;return{...s,[e]:{data:r,loading:!1,error:r?null:a}}})}}},[]),u=(0,s.useCallback)(async e=>{let t=r[e];t&&null!==t.data||t&&t.loading||await c(e)},[r,c]);return{tabs:r,fetchTab:u,refreshTab:(0,s.useCallback)(async e=>{await c(e)},[c])}}(i,sm),J=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!J.current)return;J.current=!1;let e="overview"===W?B:`${B}/${W}`;e!==z&&window.history.pushState(null,"",e)},[W,B,z]);let X=(0,s.useRef)(z);(0,s.useEffect)(()=>{if(X.current===z||(X.current=z,J.current))return;let e=z.split("/"),t=e.length>=4?e[3]:void 0,s=t&&F.includes(t)?t:"overview";s!==W&&(G(s),("activity"===s||"plan"===s)&&Q(s))},[z]);let Y=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!Y.current&&(Y.current=!0,!d&&"overview"!==V)){let e=`${B}/${V}`;e!==z&&window.history.replaceState(null,"",e)}},[]);let ee=(0,s.useRef)(!1);(0,s.useEffect)(()=>{ee.current||(ee.current=!0,("activity"===W||"plan"===W)&&Q(W))},[W,Q]);let et=(0,s.useRef)(i);(0,s.useEffect)(()=>{et.current!==i&&(et.current=i,G("overview"))},[i]);let es=(0,s.useRef)(o);(0,s.useEffect)(()=>{if(es.current!==o&&o&&F.includes(o)){es.current=o,G(o),("activity"===o||"plan"===o)&&Q(o);let e="overview"===o?B:`${B}/${o}`;e!==window.location.pathname&&window.history.replaceState(null,"",e)}},[o,F,B,Q]),(0,s.useEffect)(()=>{F.includes(W)||(G("overview"),window.location.pathname!==B&&window.history.replaceState(null,"",B))},[F,W,B]);let ea=(0,s.useRef)(W);ea.current=W;let er=(0,s.useRef)(0);(0,s.useEffect)(()=>{if(!E||0===E.length||(er.current>E.length&&(er.current=0),E.length<=er.current))return;let e=E.slice(er.current);if(er.current=E.length,!e.some(e=>e.featureId===i))return;Z("activity");let t=ea.current;"plan"===t&&Z(t)},[E,i,Z]);let el="running"===n.state||"creating"===n.state;(0,s.useEffect)(()=>{if(!el)return;let e=setInterval(()=>{Z("activity")},5e3);return()=>clearInterval(e)},[el,Z]);let ei=(0,s.useCallback)(e=>{J.current=!0,G(e),("activity"===e||"plan"===e)&&Q(e)},[Q]);return(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:(0,t.jsxs)(U.Tabs,{value:W,onValueChange:ei,className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"shrink-0 px-4 pt-4 pb-3","data-testid":"feature-drawer-header",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-4 pe-6",children:[e?(0,t.jsx)("h2",{className:"text-foreground min-w-0 shrink truncate text-base font-semibold tracking-tight",children:e}):null,(0,t.jsx)(U.TabsList,{className:"h-auto shrink-0 gap-0.5 rounded-none border-0 bg-transparent p-0",children:q.map(e=>(0,t.jsx)(U.TabsTrigger,{value:e.key,className:"text-muted-foreground hover:text-foreground data-[state=active]:text-foreground data-[state=active]:border-primary h-auto rounded-none border-b-2 border-transparent bg-transparent px-2 py-0.5 text-[12px] font-medium shadow-none transition-colors data-[state=active]:bg-transparent data-[state=active]:shadow-none",children:e.label},e.key))})]}),a]}),(0,t.jsx)(H.Separator,{}),(0,t.jsx)(U.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,t.jsx)(ta,{data:n,syncStatus:C,syncLoading:S,syncError:T,onRefreshSync:M,onRebaseOnMain:R,rebaseLoading:I,rebaseError:A})}),(0,t.jsx)(U.TabsContent,{value:"activity",className:"mt-0 flex-1 overflow-y-auto",children:(0,t.jsx)(tT,{timings:K.activity.data?.timings??null,loading:K.activity.loading,error:K.activity.error,rejectionFeedback:K.activity.data?.rejectionFeedback})}),(0,t.jsx)(U.TabsContent,{value:"log",className:"mt-0 flex-1 overflow-hidden",children:(0,t.jsx)(t3,{content:_.content,isConnected:_.isConnected,error:_.error})}),(0,t.jsx)(U.TabsContent,{value:"plan",className:"mt-0 flex-1 overflow-y-auto",children:(0,t.jsx)(so,{plan:K.plan.data,loading:K.plan.loading,error:K.plan.error})}),F.includes("prd-review")?(0,t.jsx)(U.TabsContent,{value:"prd-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:c?(0,t.jsx)(en,{data:c,selections:u??{},onSelect:m??(()=>void 0),onApprove:x??(()=>void 0),onReject:p,isProcessing:h,isRejecting:P,chatInput:$,onChatInputChange:D}):(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,F.includes("tech-decisions")?(0,t.jsx)(U.TabsContent,{value:"tech-decisions",className:"mt-0 flex min-h-0 flex-1 flex-col",children:f?(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(eu,{data:f})}),(0,t.jsx)(sp,{onApprove:g??(()=>void 0),onReject:b,isProcessing:j,isRejecting:P,chatInput:$,onChatInputChange:D})]}):(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})})}):null,F.includes("product-decisions")?(0,t.jsx)(U.TabsContent,{value:"product-decisions",className:"mt-0 flex-1 overflow-y-auto",children:null===v?(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"})}):v?(0,t.jsx)(ep,{data:v}):(0,t.jsx)("p",{className:"text-muted-foreground p-4 text-center text-sm",children:"No product decisions available."})}):null,F.includes("merge-review")?(0,t.jsx)(U.TabsContent,{value:"merge-review",className:"mt-0 flex min-h-0 flex-1 flex-col",children:N?(0,t.jsx)(eO,{data:N,readOnly:"maintain"===n.lifecycle,onApprove:y??(()=>void 0),onReject:w,isProcessing:k,isRejecting:P,chatInput:$,onChatInputChange:D}):(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:k?(0,t.jsx)(l.Loader2,{className:"text-muted-foreground h-6 w-6 animate-spin"}):(0,t.jsxs)("div",{className:"text-muted-foreground flex flex-col items-center gap-2 text-sm",children:[(0,t.jsx)(O.AlertCircle,{className:"h-6 w-6"}),(0,t.jsx)("span",{children:"Merge review data unavailable"})]})})}):null,F.includes("chat")?(0,t.jsx)(U.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,t.jsx)(sd.ChatTab,{featureId:i,worktreePath:n.worktreePath})}):null]})})}function sp({onApprove:e,onReject:s,isProcessing:r,isRejecting:n,chatInput:l,onChatInputChange:i}){let{t:o}=(0,a.useTranslation)("web");return(0,t.jsx)(er,{onReject:s,onApprove:e,approveLabel:o("featureDrawer.approvePlan"),revisionPlaceholder:"Ask AI to revise the plan...",isProcessing:r,isRejecting:n,chatInput:l,onChatInputChange:i})}var sh=e.i(65982),sf=e.i(73101),sg=e.i(8696);let sb=(0,f.createServerReference)("405c676ea939da4ae94ee0b3f07b7a1f617fe60dc6",f.callServer,void 0,f.findSourceMapURL,"rebaseFeature");var sj=e.i(99045);function sv(e){return"requirements"===e.lifecycle&&"action-required"===e.state?"prd-review":"implementation"===e.lifecycle&&"action-required"===e.state?"tech-decisions":"review"===e.lifecycle&&("action-required"===e.state||"error"===e.state)?"merge-review":"overview"}function sN(e,t,a,r,l,i){let[o,d]=(0,s.useState)(!1),c=(0,s.useRef)(a),u=(0,s.useRef)(r);return c.current=a,u.current=r,(0,s.useEffect)(()=>{if(u.current(),!e)return;let s=!1;return d(!0),t(e).then(e=>{s||c.current(e)}).catch(()=>{!s&&l&&n.toast.error(l)}).finally(()=>{s||d(!1)}),()=>{s=!0}},[e,t,l,i]),o}let sy=(0,f.createServerReference)("40f5476ff08b8ba3288f083e782fb6e14a04f77886",f.callServer,void 0,f.findSourceMapURL,"getFeatureDrawerData"),sw=(0,f.createServerReference)("400a7d1fd76c5d30d83132b9544cc76d2bbb1caa0b",f.callServer,void 0,f.findSourceMapURL,"getBranchSyncStatus"),sk=new Map;function sC({view:e,urlTab:f,interactiveAgentEnabled:E=!0}){var L;let z,F,q,O,U,H=(0,k.useFeatureFlags)(),{t:V}=(0,a.useTranslation)("web"),W=(0,r.useRouter)(),G=(0,C.useSoundAction)("reject"),[_,K]=(0,s.useState)(e);(0,s.useEffect)(()=>{K(e)},[e]);let Q="feature"===_.type?_.node:null,{events:Z}=(0,M.useAgentEventsContext)(),J=(0,s.useRef)(0);(0,s.useEffect)(()=>{if(J.current>Z.length&&(J.current=0),!Q||Z.length<=J.current)return;let e=Z.slice(J.current);for(let t of(J.current=Z.length,(0,sj.resolveSseEventUpdates)(e)))t.featureId===Q.featureId&&"deleting"!==Q.state&&(void 0!==t.state||void 0!==t.lifecycle)&&K(e=>{if("feature"!==e.type)return e;let s={...e.node,...void 0!==t.state&&{state:t.state},...void 0!==t.lifecycle&&{lifecycle:t.lifecycle}};return{...e,node:s,initialTab:sv(s)}})},[Z,Q]);let X=(0,r.usePathname)().startsWith("/feature/");L=Q?.featureId??null,z=(0,s.useRef)(X),F=(0,s.useRef)(!1),q=(0,s.useCallback)(async()=>{if(L&&!F.current){F.current=!0;try{let e=await sy(L);if(!e)return;K(t=>(function(e,t){if("feature"!==e.type)return e;let s={...e.node,...t},a=s.state!==e.node.state||s.lifecycle!==e.node.lifecycle;return{...e,node:s,initialTab:a?sv(s):e.initialTab}})(t,e))}catch{}finally{F.current=!1}}},[L,K]),O=(0,s.useRef)(!1),(0,s.useEffect)(()=>{!X||z.current&&O.current||(O.current=!0,q()),z.current=X},[X,q]),(0,s.useEffect)(()=>{if(!X||!L)return;let e=setInterval(()=>{q()},15e3);return()=>clearInterval(e)},[X,L,q]);let Y=(0,s.useCallback)(()=>{W.push("/")},[W]),[ee,et]=(0,s.useState)(""),[es,ea]=(0,s.useState)(null),[er,en]=(0,s.useState)({}),[el,ei]=(0,s.useState)({}),[eo,ed]=(0,s.useState)(null),[ec,eu]=(0,s.useState)(void 0),[em,ex]=(0,s.useState)(null),[ep,eh]=(0,s.useState)(!1),[ef,eg]=(0,s.useState)(!1),[eb,ej]=(0,s.useState)(!1),ev=`${Q?.featureId}:${Q?.state}`,eN=(0,s.useRef)(ev);(0,s.useEffect)(()=>{ev!==eN.current&&(eN.current=ev,ej(!1))},[ev]);let[ey,ew]=(0,s.useState)(!1),ek=(0,s.useRef)(!1),eC="feature"===_.type?_.initialTab:void 0;(0,s.useEffect)(()=>{et("")},[eC]);let eS=(0,s.useRef)(0),eT=(0,s.useRef)(Q?.state),eM=(0,s.useRef)(Q?.lifecycle);(Q?.state!==eT.current||Q?.lifecycle!==eM.current)&&(eT.current=Q?.state,eM.current=Q?.lifecycle,eS.current+=1);let eR=eS.current,eI=sN(Q?.lifecycle==="requirements"&&Q?.state==="action-required"?Q.featureId:null,N,e=>{if(e.error)return void n.toast.error(e.error);if(e.questionnaire){ea(e.questionnaire);let t={};for(let s of e.questionnaire.questions){let e=s.options.find(e=>e.recommended);e&&(t[s.id]=e.id)}en(t),ei(t)}},()=>{en({}),ei({}),ea(null)},"Failed to load questionnaire",eR),eA=Q?.lifecycle==="implementation"&&Q?.state==="action-required"?Q.featureId:null,eP=sN(eA,y,e=>{e.error?n.toast.error(e.error):e.techDecisions&&ed(e.techDecisions)},()=>ed(null),"Failed to load tech decisions",eR),e$=sN(eA,N,e=>{e.productDecisions&&eu(e.productDecisions)},()=>eu(void 0),void 0,eR),eD=sN(Q?.lifecycle==="review"&&(Q?.state==="action-required"||Q?.state==="error")||Q?.lifecycle==="maintain"&&Q?.pr?Q.featureId:null,w,e=>{"error"in e?n.toast.error(e.error):ex(e)},()=>ex(null),"Failed to load merge review data",eR),eE=ee.trim().length>0,eL=Q?.lifecycle==="requirements"&&Q?.state==="action-required"&&Object.keys(el).some(e=>el[e]!==er[e]),ez=(0,s.useCallback)(()=>{et(""),en({...el})},[el]),{attemptClose:eF}=(0,S.useGuardedDrawerClose)({open:X,isDirty:eE||eL,onClose:Y,onReset:ez}),eq=(0,s.useCallback)(async(e,t,s=[],a)=>{if(Q?.featureId){ek.current=!0,ew(!0);try{let r=s.map(e=>e.path).filter(Boolean),l=s.filter(e=>e.notes?.trim()),i=l.length>0?`${e}
3
-
4
- Image notes:
5
- ${l.map(e=>`- @${e.path}: ${e.notes.trim()}`).join("\n")}`:e,o=await v(Q.featureId,i,r);if(!o.rejected)return void n.toast.error(o.error??`Failed to reject ${t.toLowerCase()}`);G.play(),et(""),n.toast.success(`${t} rejected — agent re-iterating (iteration ${o.iteration})`),o.iterationWarning&&n.toast.warning(`Iteration ${o.iteration} — consider approving or adjusting feedback to avoid excessive iterations`),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:Q.featureId}})),Y(),a?.()}finally{ek.current=!1,ew(!1)}}},[Q,Y,G]),eB=(0,s.useCallback)((e,t)=>eq(e,"Requirements",t,()=>en({})),[eq]),eO=(0,s.useCallback)((e,t)=>eq(e,"Plan",t),[eq]),eU=(0,s.useCallback)((e,t)=>eq(e,"Merge",t),[eq]),eH=(0,s.useCallback)(async e=>{if(!Q?.featureId)return;let t=await g(Q.featureId);t.approved?(et(""),n.toast.success(`${e} approved — agent resuming`),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:Q.featureId}})),Y()):n.toast.error(t.error??`Failed to approve ${e.toLowerCase()}`)},[Q,Y]),eV=(0,s.useCallback)(async e=>{let t;if("feature"!==_.type||!Q)return;if(es){let e=[];for(let[t,s]of Object.entries(er)){let a=es.questions.find(e=>e.id===t),r=a?.options.find(e=>e.id===s);a&&r&&e.push({questionId:a.question,selectedOption:r.label})}t={approved:!0,changedSelections:e}}let s=await g(Q.featureId,t);s.approved?(et(""),n.toast.success("Requirements approved — agent resuming"),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:Q.featureId}})),en({}),Y()):n.toast.error(s.error??"Failed to approve requirements")},[_,Q,es,er,Y]),eW=(0,s.useCallback)(()=>eH("Plan"),[eH]),eG=(0,s.useCallback)(()=>eH("Merge"),[eH]),e_=(0,s.useCallback)(async(e,t,s,a)=>{eh(!0),eg(!1),window.dispatchEvent(new CustomEvent("shep:feature-delete-requested",{detail:{featureId:e,cleanup:t,cascadeDelete:s,closePr:a}})),W.push("/")},[W]),eK=(0,s.useCallback)(e=>{ej(!0),window.dispatchEvent(new CustomEvent("shep:feature-archive-requested",{detail:{featureId:e}})),W.push("/")},[W]),eQ=(0,s.useCallback)(e=>{ej(!0),window.dispatchEvent(new CustomEvent("shep:feature-unarchive-requested",{detail:{featureId:e}})),W.push("/")},[W]),eZ=(0,s.useCallback)(async e=>{let t=await (0,b.resumeFeature)(e);t.error?n.toast.error(t.error):(n.toast.success("Feature resumed — agent restarting"),window.dispatchEvent(new CustomEvent("shep:feature-approved",{detail:{featureId:e}})),K(e=>"feature"!==e.type?e:{...e,node:{...e.node,state:"running"}}))},[]),eJ=(0,s.useCallback)(async e=>{let t=await (0,j.startFeature)(e);t.error?n.toast.error(t.error):(n.toast.success("Feature started"),K(e=>"feature"!==e.type?e:{...e,node:{...e.node,state:"running"}}))},[]),eX=Q?.repositoryPath&&Q?.branch?{featureId:Q.featureId,repositoryPath:Q.repositoryPath,branch:Q.branch,worktreePath:Q.worktreePath,specPath:Q.specPath}:null,eY=function(e){let[t,a]=(0,s.useState)(!1),[r,n]=(0,s.useState)(!1),[l,i]=(0,s.useState)(!1),[o,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[m,x]=(0,s.useState)(null),[p,h]=(0,s.useState)(null),[f,g]=(0,s.useState)(null),[b,j]=(0,s.useState)(null),[v,N]=(0,s.useState)(null),y=(0,s.useRef)(null),w=(0,s.useRef)(null),k=(0,s.useRef)(null),C=(0,s.useRef)(null),S=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=[y,w,k,C,S];return()=>{for(let t of e)t.current&&clearTimeout(t.current)}},[]);let T=(0,s.useCallback)(async(t,s,a,r,n)=>{if(e&&!n){r.current&&clearTimeout(r.current),s(!0),a(null);try{let s=await t({repositoryPath:e.repositoryPath,branch:e.branch});if(!s.success){let e=s.error??"An unexpected error occurred";a(e),r.current=setTimeout(()=>a(null),5e3)}}catch(e){a(e instanceof Error?e.message:"An unexpected error occurred"),r.current=setTimeout(()=>a(null),5e3)}finally{s(!1)}}},[e]);return{openInIde:(0,s.useCallback)(()=>T(sh.openIde,a,x,y,t),[T,t]),openInShell:(0,s.useCallback)(()=>T(sf.openShell,n,h,w,r),[T,r]),openFolder:(0,s.useCallback)(async()=>{if(e&&!l){k.current&&clearTimeout(k.current),i(!0),g(null);try{let t=e.worktreePath??e.repositoryPath,s=await (0,sg.openFolder)(t);if(!s.success){let e=s.error??"An unexpected error occurred";g(e),k.current=setTimeout(()=>g(null),5e3)}}catch(e){g(e instanceof Error?e.message:"An unexpected error occurred"),k.current=setTimeout(()=>g(null),5e3)}finally{i(!1)}}},[e,l]),openSpecsFolder:(0,s.useCallback)(async()=>{if(e?.specPath&&!o){C.current&&clearTimeout(C.current),d(!0),j(null);try{let t=await (0,sg.openFolder)(e.specPath);if(!t.success){let e=t.error??"An unexpected error occurred";j(e),C.current=setTimeout(()=>j(null),5e3)}}catch(e){j(e instanceof Error?e.message:"An unexpected error occurred"),C.current=setTimeout(()=>j(null),5e3)}finally{d(!1)}}},[e,o]),rebaseOnMain:(0,s.useCallback)(async()=>{if(e?.featureId&&!c){S.current&&clearTimeout(S.current),u(!0),N(null);try{let t=await sb(e.featureId);if(!t.success){let e=t.error??"An unexpected error occurred";N(e),S.current=setTimeout(()=>N(null),5e3)}}catch(e){N(e instanceof Error?e.message:"An unexpected error occurred"),S.current=setTimeout(()=>N(null),5e3)}finally{u(!1)}}},[e,c]),ideLoading:t,shellLoading:r,folderLoading:l,specsLoading:o,rebaseLoading:c,ideError:m,shellError:p,folderError:f,specsError:b,rebaseError:v}}(eX),e0=H.gitRebaseSync&&Q?.branch&&Q?.remoteUrl?Q.featureId:null,{data:e1,loading:e2,error:e5,refresh:e3}=function(e){let[t,a]=(0,s.useState)(()=>{if(!e)return null;let t=sk.get(e);return t?t.data:null}),[r,n]=(0,s.useState)(!1),[l,i]=(0,s.useState)(null),o=(0,s.useRef)(e);o.current=e;let d=(0,s.useCallback)(async e=>{n(!0),i(null);try{let t=await sw(e);if(o.current!==e)return;if(t.success&&t.data){let s=t.data;sk.set(e,{data:s,timestamp:Date.now()}),a(s)}else i(t.error??"Failed to check sync status")}catch{if(o.current!==e)return;i("Failed to check sync status")}finally{o.current===e&&n(!1)}},[]);return(0,s.useEffect)(()=>{if(!e){a(null),i(null);return}let t=sk.get(e);t&&(a(t.data),Date.now()-t.timestamp<3e4)||d(e)},[e,d]),{data:t,loading:r,error:l,refresh:(0,s.useCallback)(()=>{e&&d(e)},[e,d])}}(e0),e4=(0,s.useRef)(eY.rebaseLoading);(0,s.useEffect)(()=>{!e4.current||eY.rebaseLoading||eY.rebaseError||e3(),e4.current=eY.rebaseLoading},[eY.rebaseLoading,eY.rebaseError,e3]);let e6=Q?.repositoryPath&&Q.branch?{targetId:Q.featureId,targetType:"feature",repositoryPath:Q.repositoryPath,branch:Q.branch}:null,e8=(0,T.useDeployAction)(e6),e7="Booting"===e8.status||"Ready"===e8.status,[e9,te]=(0,s.useState)(!1),tt=(0,s.useCallback)(()=>{Q?.featureId&&(navigator.clipboard.writeText(Q.featureId),te(!0),setTimeout(()=>te(!1),2e3))},[Q?.featureId]);if(Q){let e=Q.featureId.slice(0,8),s=Q.repositoryName??Q.repositoryPath.split("/").filter(Boolean).at(-1)??"";U=(0,t.jsxs)(t.Fragment,{children:[s?(0,t.jsxs)("div",{className:"flex items-center gap-1.5 pt-0.5",children:[(0,t.jsx)(m.Code2,{className:"text-muted-foreground size-3.5 shrink-0"}),Q.remoteUrl?(0,t.jsxs)("a",{href:Q.remoteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-xs transition-colors","data-testid":"feature-drawer-repo-link",children:[s,(0,t.jsx)(x.ExternalLink,{className:"size-3"})]}):(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:s})]}):null,eX?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1","data-testid":"feature-drawer-actions",children:[Q?.state!=="done"?(0,t.jsx)(B,{actions:eY,repositoryPath:eX.repositoryPath,worktreePath:eX.worktreePath,showSpecs:!!eX.specPath}):null,Q?.state!=="done"&&H.envDeploy&&e6?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P.TooltipProvider,{children:(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{children:(0,t.jsx)(D.ActionButton,{label:V(e7?"featureDrawer.stopDevServer":"featureDrawer.startDevServer"),onClick:e7?e8.stop:e8.deploy,loading:e8.deployLoading||e8.stopLoading,error:!!e8.deployError,icon:e7?d.Square:o.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,t.jsx)(P.TooltipContent,{children:V(e7?"featureDrawer.stopDevServer":"featureDrawer.startDevServer")})]})}),e7?(0,t.jsx)(I.DeploymentStatusBadge,{status:e8.status,url:e8.url,targetId:e6?.targetId}):null]}):null,(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[(0,t.jsx)("code",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 font-mono text-xs",children:e}),(0,t.jsx)("button",{type:"button",onClick:tt,className:"text-muted-foreground hover:text-foreground inline-flex items-center rounded p-0.5 transition-colors","aria-label":V("featureDrawer.copyFeatureId"),"data-testid":"feature-drawer-copy-id",children:e9?(0,t.jsx)(u.Check,{className:"size-3.5 text-green-600"}):(0,t.jsx)(c.Copy,{className:"size-3.5"})})]}),Q.featureId?(0,t.jsxs)(t.Fragment,{children:["archived"===Q.state?(0,t.jsx)(P.TooltipProvider,{children:(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(A.Button,{variant:"ghost",size:"icon-sm","aria-label":V("featureDrawer.unarchiveFeature"),disabled:eb,className:"text-muted-foreground hover:text-primary","data-testid":"feature-drawer-unarchive",onClick:()=>eQ(Q.featureId),children:eb?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(h.ArchiveRestore,{className:"size-4"})})}),(0,t.jsx)(P.TooltipContent,{children:V("featureDrawer.unarchiveFeature")})]})}):"deleting"!==Q.state?(0,t.jsx)(P.TooltipProvider,{children:(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(A.Button,{variant:"ghost",size:"icon-sm","aria-label":V("featureDrawer.archiveFeature"),disabled:eb,className:"text-muted-foreground hover:text-foreground","data-testid":"feature-drawer-archive",onClick:()=>eK(Q.featureId),children:eb?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(p.Archive,{className:"size-4"})})}),(0,t.jsx)(P.TooltipContent,{children:V("featureDrawer.archiveFeature")})]})}):null,(0,t.jsx)(A.Button,{variant:"ghost",size:"icon-sm","aria-label":V("featureDrawer.deleteFeature"),disabled:ep,className:"text-muted-foreground hover:text-destructive","data-testid":"feature-drawer-delete",onClick:()=>eg(!0),children:ep?(0,t.jsx)(l.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(i.Trash2,{className:"size-4"})}),(0,t.jsx)($.DeleteFeatureDialog,{open:ef,onOpenChange:eg,onConfirm:(e,t,s)=>e_(Q.featureId,e,t,s),isDeleting:ep,featureName:Q.name,featureId:Q.featureId,hasChildren:Q.hasChildren,hasOpenPr:!!Q.pr&&"Open"===Q.pr.status})]}):null]}):null]})}let ts=null;if("feature"===_.type&&Q){let e={...Q,..."error"===Q.state&&{onRetry:eZ},..."pending"===Q.state&&{onStart:eJ}};ts=(0,t.jsx)(sx,{featureName:Q.name,headerContent:U,featureNode:e,featureId:Q.featureId,initialTab:_.initialTab,urlTab:f,sseEvents:Z,prdData:es,prdSelections:er,onPrdSelect:(e,t)=>en(s=>({...s,[e]:t})),onPrdApprove:eV,onPrdReject:eB,isPrdLoading:eI,techData:eo,onTechApprove:eW,onTechReject:eO,isTechLoading:eP,productData:e$?null:ec,mergeData:em,onMergeApprove:eG,onMergeReject:eU,isMergeLoading:eD,syncStatus:e0?e1:void 0,syncLoading:e2,syncError:e5,onRefreshSync:e0?e3:void 0,onRebaseOnMain:e0?eY.rebaseOnMain:void 0,rebaseLoading:eY.rebaseLoading,rebaseError:eY.rebaseError,isRejecting:ey,chatInput:ee,onChatInputChange:et,interactiveAgentEnabled:E})}return(0,t.jsx)(R.BaseDrawer,{open:X,onClose:eF,size:"lg",modal:!1,"data-testid":"feature"===_.type?"feature-drawer":"repository-drawer",children:ts})}e.s(["FeatureDrawerClient",()=>sC],36986)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406);e.i(41001);var n=e.i(64780),i=e.i(84840),s=e.i(57638),o=e.i(3645);let l=(0,o.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]),c=(0,o.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),u=(0,o.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),d=(0,o.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),h=(0,o.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var f=e.i(81975),p=e.i(12103);let m=(0,o.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var g=e.i(87620),x=e.i(85995),b=e.i(22528),v=e.i(5978),y=e.i(29297),w=e.i(66033),C=e.i(5192),j=e.i(27069),S=e.i(91967),k="ScrollArea",[N,E]=(0,b.createContextScope)(k),[T,M]=N(k),P=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,type:i="hover",dir:s,scrollHideDelay:o=600,...l}=e,[c,u]=r.useState(null),[d,h]=r.useState(null),[f,p]=r.useState(null),[m,x]=r.useState(null),[b,y]=r.useState(null),[C,j]=r.useState(0),[S,k]=r.useState(0),[N,E]=r.useState(!1),[M,P]=r.useState(!1),A=(0,v.useComposedRefs)(a,e=>u(e)),R=(0,w.useDirection)(s);return(0,t.jsx)(T,{scope:n,type:i,dir:R,scrollHideDelay:o,scrollArea:c,viewport:d,onViewportChange:h,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:x,scrollbarXEnabled:N,onScrollbarXEnabledChange:E,scrollbarY:b,onScrollbarYChange:y,scrollbarYEnabled:M,onScrollbarYEnabledChange:P,onCornerWidthChange:j,onCornerHeightChange:k,children:(0,t.jsx)(g.Primitive.div,{dir:R,...l,ref:A,style:{position:"relative","--radix-scroll-area-corner-width":C+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});P.displayName=k;var A="ScrollAreaViewport",R=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,children:i,nonce:s,...o}=e,l=M(A,n),c=r.useRef(null),u=(0,v.useComposedRefs)(a,c,l.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),(0,t.jsx)(g.Primitive.div,{"data-radix-scroll-area-viewport":"",...o,ref:u,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})});R.displayName=A;var L="ScrollAreaScrollbar",D=r.forwardRef((e,a)=>{let{forceMount:n,...i}=e,s=M(L,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:l}=s,c="horizontal"===e.orientation;return r.useEffect(()=>(c?o(!0):l(!0),()=>{c?o(!1):l(!1)}),[c,o,l]),"hover"===s.type?(0,t.jsx)(O,{...i,ref:a,forceMount:n}):"scroll"===s.type?(0,t.jsx)(q,{...i,ref:a,forceMount:n}):"auto"===s.type?(0,t.jsx)(z,{...i,ref:a,forceMount:n}):"always"===s.type?(0,t.jsx)(I,{...i,ref:a}):null});D.displayName=L;var O=r.forwardRef((e,a)=>{let{forceMount:n,...i}=e,s=M(L,e.__scopeScrollArea),[o,l]=r.useState(!1);return r.useEffect(()=>{let e=s.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),l(!0)},a=()=>{t=window.setTimeout(()=>l(!1),s.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",a),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",a)}}},[s.scrollArea,s.scrollHideDelay]),(0,t.jsx)(x.Presence,{present:n||o,children:(0,t.jsx)(z,{"data-state":o?"visible":"hidden",...i,ref:a})})}),q=r.forwardRef((e,a)=>{var n;let{forceMount:i,...s}=e,o=M(L,e.__scopeScrollArea),l="horizontal"===e.orientation,c=er(()=>d("SCROLL_END"),100),[u,d]=(n={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>n[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>d("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,o.scrollHideDelay,d]),r.useEffect(()=>{let e=o.viewport,t=l?"scrollLeft":"scrollTop";if(e){let r=e[t],a=()=>{let a=e[t];r!==a&&(d("SCROLL"),c()),r=a};return e.addEventListener("scroll",a),()=>e.removeEventListener("scroll",a)}},[o.viewport,l,d,c]),(0,t.jsx)(x.Presence,{present:i||"hidden"!==u,children:(0,t.jsx)(I,{"data-state":"hidden"===u?"hidden":"visible",...s,ref:a,onPointerEnter:(0,S.composeEventHandlers)(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:(0,S.composeEventHandlers)(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),z=r.forwardRef((e,a)=>{let n=M(L,e.__scopeScrollArea),{forceMount:i,...s}=e,[o,l]=r.useState(!1),c="horizontal"===e.orientation,u=er(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;l(c?e:t)}},10);return ea(n.viewport,u),ea(n.content,u),(0,t.jsx)(x.Presence,{present:i||o,children:(0,t.jsx)(I,{"data-state":o?"visible":"hidden",...s,ref:a})})}),I=r.forwardRef((e,a)=>{let{orientation:n="vertical",...i}=e,s=M(L,e.__scopeScrollArea),o=r.useRef(null),l=r.useRef(0),[c,u]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=V(c.viewport,c.content),h={...i,sizes:c,onSizesChange:u,hasThumb:!!(d>0&&d<1),onThumbChange:e=>o.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function f(e,t){return function(e,t,r,a="ltr"){let n=Z(r),i=t||n/2,s=r.scrollbar.paddingStart+i,o=r.scrollbar.size-r.scrollbar.paddingEnd-(n-i),l=r.content-r.viewport;return ee([s,o],"ltr"===a?[0,l]:[-1*l,0])(e)}(e,l.current,c,t)}return"horizontal"===n?(0,t.jsx)(H,{...h,ref:a,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=J(s.viewport.scrollLeft,c,s.dir);o.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{s.viewport&&(s.viewport.scrollLeft=e)},onDragScroll:e=>{s.viewport&&(s.viewport.scrollLeft=f(e,s.dir))}}):"vertical"===n?(0,t.jsx)(_,{...h,ref:a,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=J(s.viewport.scrollTop,c);o.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{s.viewport&&(s.viewport.scrollTop=e)},onDragScroll:e=>{s.viewport&&(s.viewport.scrollTop=f(e))}}):null}),H=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:i,...s}=e,o=M(L,e.__scopeScrollArea),[l,c]=r.useState(),u=r.useRef(null),d=(0,v.useComposedRefs)(a,u,o.onScrollbarXChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(K,{"data-orientation":"horizontal",...s,ref:d,sizes:n,style:{bottom:0,left:"rtl"===o.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===o.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Z(n)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(o.viewport){var a,n;let i=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(i),a=i,n=r,a>0&&a<n&&t.preventDefault()}},onResize:()=>{u.current&&o.viewport&&l&&i({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:G(l.paddingLeft),paddingEnd:G(l.paddingRight)}})}})}),_=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:i,...s}=e,o=M(L,e.__scopeScrollArea),[l,c]=r.useState(),u=r.useRef(null),d=(0,v.useComposedRefs)(a,u,o.onScrollbarYChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(K,{"data-orientation":"vertical",...s,ref:d,sizes:n,style:{top:0,right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Z(n)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(o.viewport){var a,n;let i=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(i),a=i,n=r,a>0&&a<n&&t.preventDefault()}},onResize:()=>{u.current&&o.viewport&&l&&i({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:G(l.paddingTop),paddingEnd:G(l.paddingBottom)}})}})}),[Q,F]=N(L),K=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,sizes:i,hasThumb:s,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:c,onThumbPositionChange:u,onDragScroll:d,onWheelScroll:h,onResize:f,...p}=e,m=M(L,n),[x,b]=r.useState(null),w=(0,v.useComposedRefs)(a,e=>b(e)),C=r.useRef(null),j=r.useRef(""),k=m.viewport,N=i.content-i.viewport,E=(0,y.useCallbackRef)(h),T=(0,y.useCallbackRef)(u),P=er(f,10);function A(e){C.current&&d({x:e.clientX-C.current.left,y:e.clientY-C.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;x?.contains(t)&&E(e,N)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[k,x,N,E]),r.useEffect(T,[i,T]),ea(x,P),ea(m.content,P),(0,t.jsx)(Q,{scope:n,scrollbar:x,hasThumb:s,onThumbChange:(0,y.useCallbackRef)(o),onThumbPointerUp:(0,y.useCallbackRef)(l),onThumbPositionChange:T,onThumbPointerDown:(0,y.useCallbackRef)(c),children:(0,t.jsx)(g.Primitive.div,{...p,ref:w,style:{position:"absolute",...p.style},onPointerDown:(0,S.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),C.current=x.getBoundingClientRect(),j.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),A(e))}),onPointerMove:(0,S.composeEventHandlers)(e.onPointerMove,A),onPointerUp:(0,S.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=j.current,m.viewport&&(m.viewport.style.scrollBehavior=""),C.current=null})})})}),B="ScrollAreaThumb",U=r.forwardRef((e,r)=>{let{forceMount:a,...n}=e,i=F(B,e.__scopeScrollArea);return(0,t.jsx)(x.Presence,{present:a||i.hasThumb,children:(0,t.jsx)(W,{ref:r,...n})})}),W=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,style:i,...s}=e,o=M(B,n),l=F(B,n),{onThumbPositionChange:c}=l,u=(0,v.useComposedRefs)(a,e=>l.onThumbChange(e)),d=r.useRef(void 0),h=er(()=>{d.current&&(d.current(),d.current=void 0)},100);return r.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{h(),d.current||(d.current=et(e,c),c())};return c(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[o.viewport,h,c]),(0,t.jsx)(g.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...s,ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:(0,S.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,a=e.clientY-t.top;l.onThumbPointerDown({x:r,y:a})}),onPointerUp:(0,S.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});U.displayName=B;var X="ScrollAreaCorner",Y=r.forwardRef((e,r)=>{let a=M(X,e.__scopeScrollArea),n=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&n?(0,t.jsx)($,{...e,ref:r}):null});Y.displayName=X;var $=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,...i}=e,s=M(X,n),[o,l]=r.useState(0),[c,u]=r.useState(0),d=!!(o&&c);return ea(s.scrollbarX,()=>{let e=s.scrollbarX?.offsetHeight||0;s.onCornerHeightChange(e),u(e)}),ea(s.scrollbarY,()=>{let e=s.scrollbarY?.offsetWidth||0;s.onCornerWidthChange(e),l(e)}),d?(0,t.jsx)(g.Primitive.div,{...i,ref:a,style:{width:o,height:c,position:"absolute",right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:0,...e.style}}):null});function G(e){return e?parseInt(e,10):0}function V(e,t){let r=e/t;return isNaN(r)?0:r}function Z(e){let t=V(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function J(e,t,r="ltr"){let a=Z(t),n=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,i=t.scrollbar.size-n,s=t.content-t.viewport,o=(0,j.clamp)(e,"ltr"===r?[0,s]:[-1*s,0]);return ee([0,s],[0,i-a])(o)}function ee(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(r-e[0])}}var et=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},a=0;return!function n(){let i={left:e.scrollLeft,top:e.scrollTop},s=r.left!==i.left,o=r.top!==i.top;(s||o)&&t(),r=i,a=window.requestAnimationFrame(n)}(),()=>window.cancelAnimationFrame(a)};function er(e,t){let a=(0,y.useCallbackRef)(e),n=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(n.current),[]),r.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(a,t)},[a,t])}function ea(e,t){let r=(0,y.useCallbackRef)(t);(0,C.useLayoutEffect)(()=>{let t=0;if(e){let a=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return a.observe(e),()=>{window.cancelAnimationFrame(t),a.unobserve(e)}}},[e,r])}e.s(["Corner",()=>Y,"Root",()=>P,"ScrollArea",()=>P,"ScrollAreaCorner",()=>Y,"ScrollAreaScrollbar",()=>D,"ScrollAreaThumb",()=>U,"ScrollAreaViewport",()=>R,"Scrollbar",()=>D,"Thumb",()=>U,"Viewport",()=>R,"createScrollAreaScope",()=>E],87516);var en=e.i(87516),en=en,ei=e.i(31777);function es({className:e,children:r,...a}){return(0,t.jsxs)(en.Root,{"data-slot":"scroll-area",className:(0,ei.cn)("relative",e),...a,children:[(0,t.jsx)(en.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&>div]:block!",children:r}),(0,t.jsx)(eo,{}),(0,t.jsx)(en.Corner,{})]})}function eo({className:e,orientation:r="vertical",...a}){return(0,t.jsx)(en.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:r,className:(0,ei.cn)("flex touch-none p-px transition-colors select-none","vertical"===r&&"h-full w-2.5 border-s border-s-transparent","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent",e),...a,children:(0,t.jsx)(en.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var el=e.i(24035),ec=e.i(8361);function eu({icon:e,label:r,href:a,active:n=!1}){let i=(0,ec.useSoundAction)("navigate");return(0,t.jsx)(s.SidebarMenuItem,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(s.SidebarMenuButton,{asChild:!0,isActive:n,tooltip:r,children:(0,t.jsxs)(el.default,{href:a,onClick:()=>i.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:r})]})})})}var ed=e.i(71379),ed=ed,eh=e.i(35364);function ef({className:e}){let{toggleSidebar:r,open:a}=(0,s.useSidebar)(),n=(0,ec.useSoundAction)("expand"),i=(0,ec.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,ei.cn)("flex",e),children:(0,t.jsx)(eh.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{a?i.play():n.play(),r()},"aria-label":a?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(ed.default,{className:"size-4"})})})}function ep({className:e,size:r=24,variant:a="default"}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:r,height:r,className:(0,ei.cn)("shrink-0","dev"===a&&"text-cyan-400",e),"aria-hidden":"true",children:(0,t.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,t.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}var em=e.i(2828);function eg({version:e,branch:a,commitHash:i,isDev:s=!1,packageName:o="@shepai/cli",description:l,instancePath:c}){let{t:u}=(0,n.useTranslation)("web"),d=i?.slice(0,7),{latest:h,updateAvailable:f}=function(e){let[t,a]=(0,r.useState)(null),[n,i]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/npm-version");if(!t.ok)return;let r=await t.json();!e&&r.latest&&a(r.latest)}catch{}finally{e||i(!1)}}(),()=>{e=!0}},[]);let s=null!==t&&function(e,t){let r=e=>e.split("-")[0].split(".").map(Number),a=r(e),n=r(t);for(let e=0;e<3;e++){let t=a[e]??0,r=n[e]??0;if(t>r)return 1;if(t<r)return -1}return 0}(t,e)>0;return{latest:t,updateAvailable:s,loading:n}}(e),{status:p,startUpgrade:m}=function(){let[e,t]=(0,r.useState)("idle"),[a,n]=(0,r.useState)(""),[i,s]=(0,r.useState)(),o=(0,r.useRef)(null),l=(0,r.useRef)(!1),c=(0,r.useCallback)(()=>{if("upgrading"===e||"restarting"===e)return;t("upgrading"),n(""),s(void 0),l.current=!1;let r=new AbortController;return o.current=r,fetch("/api/cli-upgrade",{method:"POST",signal:r.signal}).then(async e=>{if(!e.ok||!e.body){t("error"),s(`Server returned ${e.status}`);return}let r=e.body.getReader(),a=new TextDecoder,i="";for(;;){let{done:e,value:o}=await r.read();if(e)break;let c=(i+=a.decode(o,{stream:!0})).split("\n");for(let e of(i=c.pop()??"",c)){if(e.startsWith("event: restarting")){l.current=!0,t("restarting"),function(e,t){let r=Date.now()+3e4,a=()=>{Date.now()>r||fetch("/api/version",{method:"GET",cache:"no-store"}).then(e=>{e.ok?window.location.reload():setTimeout(a,500)}).catch(()=>{setTimeout(a,500)})};setTimeout(a,500)}(0,0);continue}if(!e.startsWith("event: done")&&e.startsWith("data: ")){let r=e.slice(6);try{let e=JSON.parse(r);"upgraded"===e.status?t("upgraded"):"up-to-date"===e.status?t("up-to-date"):"error"===e.status&&(t("error"),s(e.errorMessage))}catch{n(e=>e+r)}}}}}).catch(e=>{l.current||e instanceof DOMException&&"AbortError"===e.name||(t("error"),s(e instanceof Error?e.message:"Upgrade failed"))}),()=>{r.abort()}},[e]);return{status:e,output:a,errorMessage:i,startUpgrade:c}}(),g=s?`${e}-dev`:`v${e}`,x="upgrading"===p,b="restarting"===p,v="upgraded"===p;return(0,t.jsx)(em.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(em.Tooltip,{children:[(0,t.jsx)(em.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-muted-foreground/80 hover:text-muted-foreground relative cursor-default text-[11px] leading-tight transition-colors","data-testid":"version-label",children:[g,!f||v||b?null:(0,t.jsx)("span",{className:"absolute -top-0.5 -right-1.5 size-1.5 rounded-full bg-emerald-400","data-testid":"update-dot"})]})}),(0,t.jsxs)(em.TooltipContent,{side:"right",className:"max-w-[280px] space-y-1 p-3 text-start",children:[(0,t.jsx)("div",{className:"mb-1.5 text-xs font-semibold",children:o}),l?(0,t.jsx)("div",{className:"text-[10px] leading-snug opacity-70",children:l}):null,(0,t.jsxs)("div",{className:"border-t border-white/10 pt-1.5",children:[(0,t.jsx)(ex,{label:u("versionBadge.version"),value:g}),s&&a?(0,t.jsx)(ex,{label:u("versionBadge.branch"),value:a}):null,s&&d?(0,t.jsx)(ex,{label:u("versionBadge.commit"),value:d,mono:!0}):null,s&&c?(0,t.jsx)(ex,{label:u("versionBadge.path"),value:c,mono:!0}):null,h?(0,t.jsx)(ex,{label:"Latest",value:`v${h}`,highlight:f}):null]}),b?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-restarting",children:"Restarting..."})}):v?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-success",children:"Upgraded successfully"})}):"error"===p?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-red-400","data-testid":"upgrade-error",children:"Upgrade failed"})}):f?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("button",{type:"button",onClick:m,disabled:x||b,className:"inline-flex items-center gap-1 text-[10px] font-medium text-emerald-400 transition-colors hover:text-emerald-300 disabled:opacity-50","data-testid":"upgrade-button",children:x?"Upgrading...":b?"Restarting...":`Upgrade to v${h}`})}):null]})]})})}function ex({label:e,value:r,highlight:a,mono:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 text-[10px]",children:[(0,t.jsx)("span",{className:"opacity-60",children:e}),(0,t.jsx)("span",{className:[a?"font-medium text-emerald-400":"",n||!a?"font-mono":""].filter(Boolean).join(" "),children:r})]})}function eb({startedAt:e}){let[a,n]=(0,r.useState)(()=>Date.now()-e);return(0,r.useEffect)(()=>{let t=setInterval(()=>{(0,r.startTransition)(()=>n(Date.now()-e))},1e3);return()=>clearInterval(t)},[e]),(0,t.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t>=3600){let e=Math.floor(t/3600);return`${e}h`}let r=Math.floor(t/60);return`${String(r).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(a)})}var ev=e.i(51251),ey=e.i(83428),ew=e.i(34119),eC=e.i(94819),ej=e.i(54277),eS=e.i(55016);let ek={"action-needed":{icon:ev.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",labelKey:"sidebar.statusActionNeeded"},"in-progress":{icon:ey.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",labelKey:"sidebar.statusInProgress"},pending:{icon:eS.Clock,iconClass:"text-slate-400",bgClass:"bg-slate-400/10",labelKey:"sidebar.statusPending"},blocked:{icon:eC.Ban,iconClass:"text-gray-400",bgClass:"bg-gray-400/10",labelKey:"sidebar.statusBlocked"},error:{icon:ej.CircleX,iconClass:"text-red-500",bgClass:"bg-red-500/10",labelKey:"sidebar.statusError"},done:{icon:ew.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",labelKey:"sidebar.statusDone"}},eN=["action-needed","error","blocked","in-progress","pending","done"];var eE=e.i(86782),eT=e.i(29847);function eM({name:e,status:r,startedAt:a,duration:n,agentType:i,modelId:o,onClick:l}){let{icon:c,iconClass:u}=ek[r],d=i?(0,eE.getAgentTypeIcon)(i):null;return(0,t.jsx)(s.SidebarMenuItem,{"data-testid":"feature-list-item",children:(0,t.jsxs)(s.SidebarMenuButton,{size:"sm",onClick:l,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(c,{className:u}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===r&&null!=a?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(eb,{startedAt:a})}):null,"done"===r&&n?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:n}):null,d?(0,t.jsx)(em.TooltipProvider,{children:(0,t.jsxs)(em.Tooltip,{children:[(0,t.jsx)(em.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(d,{className:"h-3.5 w-3.5"})})}),(0,t.jsxs)(em.TooltipContent,{side:"right",children:[(0,t.jsx)("span",{className:"font-medium",children:eE.agentTypeLabels[i]??i}),o?(0,t.jsxs)("span",{className:"ms-1 opacity-70",children:["· ",(0,eT.getModelMeta)(o).displayName||o]}):null]})]})}):null]})})}var eP=e.i(73709);let eA="shep-theme";function eR({label:e,count:r,children:a}){return(0,t.jsxs)(s.SidebarGroup,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(s.SidebarGroupLabel,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${r} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ms-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:r})]}),(0,t.jsx)(s.SidebarGroupContent,{children:(0,t.jsx)(s.SidebarMenu,{className:"gap-0.5",children:a})})]})}var eL=e.i(99105),eD=e.i(81542);function eO({repoName:e,featureCount:a,children:n,defaultOpen:i=!0}){let[s,o]=(0,r.useState)(i);return(0,t.jsxs)("div",{"data-testid":"repo-group",className:"mb-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>o(!s),className:(0,ei.cn)("text-sidebar-foreground hover:bg-sidebar-accent flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-semibold","transition-colors duration-100"),"aria-expanded":s,children:[(0,t.jsx)(eL.ChevronDown,{className:(0,ei.cn)("text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform duration-200",!s&&"-rotate-90")}),(0,t.jsx)(eD.GitFork,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,t.jsx)("span",{"aria-label":`${a} features`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-auto inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:a})]}),s?(0,t.jsx)("div",{className:"pl-2",children:n}):null]})}function eq({label:e,className:r}){return(0,t.jsx)(s.SidebarGroup,{"data-testid":"sidebar-section-header",className:(0,ei.cn)("px-2 py-1",r),children:(0,t.jsx)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e})})})}let ez={version:"unknown",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform",branch:"",commitHash:"",instancePath:"",isDev:!1};function eI({features:e,featureFlags:i,onFeatureClick:o}){let{t:g,i18n:x}=(0,n.useTranslation)("web"),b=(0,a.usePathname)(),{state:v}=(0,s.useSidebar)(),y="collapsed"===v,{mounted:w,visible:C}=function(e,t){let[a,n]=(0,r.useState)(!e),[i,s]=(0,r.useState)(!e);return(0,r.useEffect)(()=>{if(!e){n(!0);let e=requestAnimationFrame(()=>s(!0));return()=>cancelAnimationFrame(e)}s(!1);let t=window.setTimeout(()=>n(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:a,visible:i}}(y,0),j=function(){let[e,t]=(0,r.useState)(ez);return(0,r.useEffect)(()=>{let e=!1;return async function(){try{let r=await fetch("/api/version");if(!r.ok)return;let a=await r.json();e||t(a)}catch{}}(),()=>{e=!0}},[]),e}(),{enabled:S,toggle:k}=(0,eP.useSoundEnabled)(),{resolvedTheme:N,theme:E,setTheme:T}=function(){let[e,t]=(0,r.useState)("system"),[a,n]=(0,r.useState)("light"),i=(0,r.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),s=(0,r.useCallback)(e=>"system"===e?i():e,[i]),o=(0,r.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),n(e)},[]),l=(0,r.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(eA,e),o(s(e))},[s,o]);return(0,r.useEffect)(()=>{let e=localStorage.getItem(eA)??"system";t(e),o(s(e))},[s,o]),(0,r.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{"system"===e&&o(s("system"))};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e,s,o]),{theme:e,resolvedTheme:a,setTheme:l}}(),M=(0,ec.useSoundAction)("toggle-on"),P=(0,ec.useSoundAction)("toggle-off"),A=(0,ec.useSoundAction)("navigate"),R=(0,r.useMemo)(()=>{let t=new Map;for(let r of e){let e=r.repositoryPath,a=t.get(e);a||(a={repoName:r.repositoryName,features:[]},t.set(e,a)),a.features.push(r)}return Array.from(t.entries()).map(([e,{repoName:t,features:r}])=>({repoPath:e,repoName:t,featureCount:r.length,statusGroups:eN.map(e=>({statusKey:e,label:g(ek[e].labelKey),items:r.filter(t=>t.status===e)})).filter(e=>e.items.length>0)}))},[e,g]);return(0,t.jsxs)(s.Sidebar,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",side:"rtl"===x.dir()?"right":"left",children:[(0,t.jsx)(s.SidebarHeader,{children:(0,t.jsxs)(s.SidebarMenu,{children:[(0,t.jsx)(s.SidebarMenuItem,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[w?(0,t.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",C?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!C,children:[(0,t.jsx)(ep,{className:"shrink-0",size:20,variant:j.isDev?"dev":"default"}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"}),(0,t.jsx)(eg,{version:j.version,branch:j.branch||void 0,commitHash:j.commitHash||void 0,isDev:j.isDev,packageName:j.packageName,description:j.description,instancePath:j.instancePath||void 0})]}):null,(0,t.jsx)(ef,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(eu,{icon:l,label:g("navigation.controlCenter"),href:"/",active:"/"===b}),(0,t.jsx)(eu,{icon:f.Wrench,label:g("navigation.tools"),href:"/tools",active:"/tools"===b}),i.skills?(0,t.jsx)(eu,{icon:p.Puzzle,label:g("navigation.skills"),href:"/skills",active:"/skills"===b}):null,(0,t.jsx)(eu,{icon:m,label:g("navigation.settings"),href:"/settings",active:"/settings"===b})]})}),(0,t.jsx)(s.SidebarContent,{children:w?(0,t.jsxs)("div",{className:["flex min-h-0 flex-1 flex-col overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",C?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eq,{label:g("sidebar.features")}),(0,t.jsx)(es,{className:"min-h-0 flex-1",children:R.map(({repoPath:e,repoName:r,featureCount:a,statusGroups:n})=>(0,t.jsx)(eO,{repoName:r,featureCount:a,children:n.map(({statusKey:e,label:r,items:a})=>(0,t.jsx)(eR,{label:r,count:a.length,children:a.map(e=>(0,t.jsx)(eM,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,agentType:e.agentType,modelId:e.modelId,onClick:o?()=>o(e.featureId):void 0},e.featureId))},e))},e))})]}):null}),(0,t.jsx)(s.SidebarFooter,{className:"border-t p-2",children:(0,t.jsx)(s.SidebarMenu,{children:(0,t.jsx)(s.SidebarMenuItem,{children:(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsxs)(em.TooltipProvider,{children:[(0,t.jsxs)(em.Tooltip,{children:[(0,t.jsx)(em.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(s.SidebarMenuButton,{className:"w-auto flex-none",onClick:e=>{let t="system"===E?"dark"===N?"light":"dark":"dark"===E?"light":"dark";"dark"!==("system"===E?N:E)?M.play():P.play();let r=window.matchMedia("(prefers-reduced-motion: reduce)").matches;"startViewTransition"in document&&!r?(document.documentElement.style.setProperty("--x",`${e.clientX}px`),document.documentElement.style.setProperty("--y",`${e.clientY}px`),document.startViewTransition(()=>{T(t)})):T(t)},"aria-label":"dark"===N?g("sidebar.switchToLight"):g("sidebar.switchToDark"),children:[(0,t.jsx)(u,{className:"h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(c,{className:"absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"})]})}),(0,t.jsx)(em.TooltipContent,{side:"top",children:"dark"===N?g("sidebar.switchToLight"):g("sidebar.switchToDark")})]}),!y&&(0,t.jsxs)(em.Tooltip,{children:[(0,t.jsx)(em.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(s.SidebarMenuButton,{className:"w-auto flex-none",onClick:()=>{A.play(),k()},"aria-label":S?g("sidebar.muteSounds"):g("sidebar.unmuteSounds"),children:S?(0,t.jsx)(d,{className:"h-4 w-4"}):(0,t.jsx)(h,{className:"h-4 w-4"})})}),(0,t.jsx)(em.TooltipContent,{side:"top",children:S?g("sidebar.muteSounds"):g("sidebar.unmuteSounds")})]})]})})})})}),(0,t.jsx)(s.SidebarRail,{})]})}e.i(13322);var eH=e.i(61201),e_=e.i(48109),eQ=e.i(60253),eF=e.i(26370);let eK=(0,o.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var eB=e.i(87538);let eU=(0,o.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var eW=e.i(28112),eX=e.i(57779),eY=e.i(80554),e$=e.i(62639);let eG="shep-global-chat";function eV(){try{let e=localStorage.getItem(eG);if(!e)return{pos:null,size:null};let t=JSON.parse(e),r=t.size??null;return r&&(r.w<360||r.h<300)&&(r={w:Math.max(360,r.w),h:Math.max(300,r.h)}),{pos:t.pos??null,size:r}}catch{return{pos:null,size:null}}}function eZ(){let{t:e}=(0,n.useTranslation)("web"),[a,i]=(0,r.useState)(!1),[o,l]=(0,r.useState)(!1),[c,u]=(0,r.useState)(!1),d=(0,eY.useTurnStatus)("global"),{swapPosition:h}=(0,e$.useFabLayout)(),{state:f}=(0,s.useSidebar)(),[p,m]=(0,r.useState)(()=>eV().pos),[g,x]=(0,r.useState)(()=>eV().size),b=(0,r.useCallback)(e=>{m(t=>"function"==typeof e?e(t):e)},[]),v=(0,r.useCallback)(e=>{x(t=>"function"==typeof e?e(t):e)},[]),y=(0,r.useRef)(null),w=(0,r.useRef)(null),C=(0,r.useRef)(null),j=(0,r.useCallback)(()=>{i(e=>(e||l(!0),!e))},[]),S=(0,r.useRef)({pos:null,size:null}),k=(0,r.useCallback)(()=>{a||(i(!0),l(!0)),u(e=>(e?(b(S.current.pos),v(S.current.size)):S.current={pos:p,size:g},!e))},[a,p,g,b,v]);(0,r.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.shiftKey&&("k"===e.key||"K"===e.key)&&(e.preventDefault(),c&&u(!1),j(),requestAnimationFrame(()=>{setTimeout(()=>{let e=y.current?.querySelector("textarea");e?.focus()},100)})),(e.metaKey||e.ctrlKey)&&e.shiftKey&&("m"===e.key||"M"===e.key)&&(e.preventDefault(),k())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[j,k,c]),(0,r.useEffect)(()=>{let e=setTimeout(()=>(function(e,t){try{localStorage.setItem(eG,JSON.stringify({pos:e,size:t}))}catch{}})(p,g),300);return()=>clearTimeout(e)},[p,g]);let N=(0,r.useCallback)((e,t,r)=>({x:Math.max(-r+100,Math.min(e,window.innerWidth-100)),y:Math.max(0,Math.min(t,window.innerHeight-48))}),[]),E=(0,r.useCallback)(e=>{e.preventDefault();let t=y.current;if(!t)return;let r=t.getBoundingClientRect(),a=p?.x??r.left,n=p?.y??r.top;w.current={startX:e.clientX,startY:e.clientY,startPosX:a,startPosY:n};let i=g?.w??r.width,s=e=>{if(!w.current)return;let t=e.clientX-w.current.startX,r=e.clientY-w.current.startY;b(N(w.current.startPosX+t,w.current.startPosY+r,i))},o=()=>{w.current=null,document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",s),document.addEventListener("mouseup",o)},[p,g,b,N]),T=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation();let t=y.current;if(!t)return;let r=t.getBoundingClientRect(),a=g?.w??r.width,n=g?.h??r.height,i=e.clientX,s=e.clientY,o=p?.y??r.top;C.current={startX:i,startY:s,startW:a,startH:n},p||b({x:r.left,y:r.top});let l=e=>{if(!C.current)return;let t=e.clientX-i,l=e.clientY-s,c=Math.max(360,a+t),u=Math.max(300,n-l),d=Math.max(0,o+l);v({w:c,h:u}),b(e=>N(e?.x??r.left,d,c))},c=()=>{C.current=null,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",c)};document.addEventListener("mousemove",l),document.addEventListener("mouseup",c)},[g,p,b,v,N]),M=(0,r.useCallback)(()=>{i(!1),u(!1)},[]),P=c?{}:p?{position:"fixed",left:p.x,top:p.y,width:g?.w??520,height:g?.h??"70vh"}:{width:g?.w??520,height:g?.h??"70vh"};return(0,t.jsxs)(t.Fragment,{children:[o?(0,t.jsxs)("div",{ref:y,className:(0,ei.cn)(c?"bg-background fixed inset-0 z-[60] flex flex-col overflow-hidden dark:bg-neutral-900":(0,ei.cn)(!p&&(h?"fixed start-8 bottom-24":"fixed end-8 bottom-24"),"z-[60] flex flex-col overflow-hidden rounded-lg","border-border/60 border dark:border-white/10","bg-background dark:bg-neutral-900","shadow-[0_8px_40px_-8px_rgba(0,0,0,0.2)] dark:shadow-[0_8px_40px_-8px_rgba(0,0,0,0.6)]"),"transition-opacity duration-300 ease-out",a?"pointer-events-auto opacity-100":"pointer-events-none opacity-0"),style:P,children:[c?null:(0,t.jsx)("div",{className:"h-[2px] shrink-0 bg-gradient-to-r from-transparent via-violet-500/50 to-transparent"}),c?null:(0,t.jsx)("div",{onMouseDown:T,className:"absolute end-0 top-0 z-10 h-4 w-4 cursor-ne-resize"}),(0,t.jsxs)("div",{onMouseDown:c?void 0:E,className:(0,ei.cn)("relative flex h-11 shrink-0 items-center gap-2.5 border-b border-black/[0.06] px-3.5 dark:border-white/[0.06]",!c&&"cursor-grab active:cursor-grabbing"),children:[(0,t.jsx)("div",{className:"from-foreground/[0.02] to-foreground/[0.02] pointer-events-none absolute inset-0 bg-gradient-to-r via-transparent"}),c?null:(0,t.jsx)(eK,{className:"text-foreground/15 relative h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("div",{className:"relative flex h-5 w-5 items-center justify-center",children:(0,t.jsx)(eF.Bot,{className:"text-foreground/50 h-4 w-4"})}),(0,t.jsxs)("div",{className:"relative flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-foreground/90 text-base font-bold tracking-tight",children:"Shep"}),(0,t.jsx)("span",{className:"text-foreground/30 text-xs font-medium tracking-widest uppercase",children:"global"})]}),(0,t.jsxs)("div",{className:"relative ms-auto flex items-center gap-0.5",children:[(0,t.jsx)("button",{type:"button",onClick:k,className:"text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors",title:c?"Restore (⌘⇧M)":"Maximize (⌘⇧M)",children:c?(0,t.jsx)(eU,{className:"h-3.5 w-3.5"}):(0,t.jsx)(eB.Maximize2,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{type:"button",onClick:M,className:"text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors",title:"Close (⌘⇧K)",children:(0,t.jsx)(eQ.X,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,t.jsx)(eW.ChatTab,{featureId:"global"})}),c?null:(0,t.jsx)("div",{onMouseDown:e=>{e.preventDefault(),e.stopPropagation();let t=y.current;if(!t)return;let r=t.getBoundingClientRect(),a=e.clientX,n=e.clientY,i=g?.w??r.width,s=g?.h??r.height;p||b({x:r.left,y:r.top});let o=e=>{let t=window.innerHeight-(p?.y??r.top);v({w:Math.max(360,i+(e.clientX-a)),h:Math.max(300,Math.min(s+(e.clientY-n),t))})},l=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)},className:"absolute end-0 bottom-0 z-10 h-4 w-4 cursor-se-resize"})]}):null,(0,t.jsxs)(eJ,{swapPosition:h,sidebarState:f,isMaximized:c,children:[(0,t.jsxs)(eh.Button,{size:"icon",onClick:j,className:(0,ei.cn)("relative h-14 w-14 rounded-full shadow-lg","transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95",a?"bg-violet-600 text-white hover:bg-violet-500":"bg-violet-500 text-white hover:bg-violet-400 dark:bg-violet-500 dark:hover:bg-violet-400"),children:[(0,t.jsx)(e_.MessageSquare,{className:(0,ei.cn)("absolute h-7 w-7 stroke-[2.5] transition-all duration-200",a?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100")}),(0,t.jsx)(eQ.X,{className:(0,ei.cn)("absolute h-6 w-6 stroke-[2.5] transition-all duration-200",a?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0")}),!a&&(0,t.jsx)(eX.ChatDotIndicator,{status:d,className:"end-0 top-0"})]}),(0,t.jsx)("div",{className:"pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 -translate-x-1/2 translate-y-1 opacity-0 transition-all duration-200 group-hover/fab:translate-y-0 group-hover/fab:opacity-100",children:(0,t.jsxs)("div",{className:"bg-foreground rounded-lg px-3 py-1.5 text-center shadow-lg",children:[(0,t.jsx)("p",{className:"text-background text-xs font-medium whitespace-nowrap",children:e("chat.shepChat")}),(0,t.jsxs)("p",{className:"text-background/50 mt-0.5 flex items-center justify-center gap-1 text-[10px]",children:[(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"⌘"}),(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"⇧"}),(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"K"})]})]})})]})]})}function eJ({swapPosition:e,sidebarState:r,isMaximized:a,children:i}){let{i18n:s}=(0,n.useTranslation)("web"),o="rtl"===s.dir();if(!e)return(0,t.jsx)("div",{className:(0,ei.cn)("group/fab fixed end-8 bottom-6 z-30",a&&"hidden"),children:i});let l="expanded"===r?"calc(var(--sidebar-width) + 32px)":"calc(var(--sidebar-width-icon) + 32px)";return(0,t.jsx)("div",{className:(0,ei.cn)("group/fab fixed bottom-6 z-30",a&&"hidden"),style:o?{right:l,transition:"right 200ms ease-in-out"}:{left:l,transition:"left 200ms ease-in-out"},children:i})}var e0=e.i(78521),e1=e.i(2287),e2=e.i(68304),e4=e.i(98127),e3=e.i(41957);let e5=/^(?:https:\/\/github\.com\/([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|git@github\.com:([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+))$/;function e6({onSubmit:e,loading:a=!1}){let[n,i]=(0,r.useState)(""),[s,o]=(0,r.useState)("");function l(){let t=n.trim();t?e5.test(t.trim())?(o(""),e(t)):o("Enter a valid GitHub URL (e.g. owner/repo or https://github.com/owner/repo)"):o("Please enter a GitHub URL")}return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(e3.Label,{htmlFor:"github-url-input",children:"GitHub URL"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(e4.Input,{id:"github-url-input",placeholder:"owner/repo or https://github.com/owner/repo",value:n,onChange:e=>{i(e.target.value),s&&o("")},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),l())},disabled:a,"aria-invalid":!!s,"aria-describedby":s?"github-url-error":void 0}),(0,t.jsx)(eh.Button,{onClick:l,disabled:a||!n.trim(),size:"sm",children:a?(0,t.jsx)(ey.Loader2,{className:"h-4 w-4 animate-spin"}):"Import"})]}),s?(0,t.jsx)("p",{id:"github-url-error",className:"text-destructive text-sm",role:"alert",children:s}):null]})}let e7=(0,o.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var e8=e.i(32494),e9=e.i(66459),te=e.i(79687),tt=e.i(81846),tr=e.i(61238),ta=e.i(47373),tn=e.i(21023);let ti=(0,tn.createServerReference)("40700107676d34ba09e2f4ebed01a206ddff090914",tn.callServer,void 0,tn.findSourceMapURL,"listGitHubRepositories"),ts=(0,tn.createServerReference)("00613c1996e5fc0eeba6f0a6093f079b89b1286589",tn.callServer,void 0,tn.findSourceMapURL,"listGitHubOrganizations"),to="__personal__";function tl({onSelect:e,loading:a=!1,fetchRepos:n=ti,fetchOrgs:i=ts}){let[s,o]=(0,r.useState)([]),[l,c]=(0,r.useState)([]),[u,d]=(0,r.useState)(!0),[h,f]=(0,r.useState)(""),[p,m]=(0,r.useState)(""),[g,x]=(0,r.useState)(to),b=(0,r.useRef)(null);(0,r.useEffect)(()=>{!async function(){try{let e=await i();e.orgs&&c(e.orgs)}catch{}}()},[i]);let v=(0,r.useCallback)(async(e,t)=>{d(!0),f("");try{let r={};e&&(r.search=e),t&&t!==to&&(r.owner=t);let a=await n(Object.keys(r).length>0?r:void 0);a.error?(f(a.error),o([])):o(a.repos??[])}catch{f("Failed to fetch repositories"),o([])}finally{d(!1)}},[n]);return((0,r.useEffect)(()=>{v(p||void 0,g)},[v,g]),h&&!u)?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center","data-testid":"repo-browser-error",children:[(0,t.jsx)(te.AlertCircle,{className:"text-destructive h-8 w-8"}),(0,t.jsx)("p",{className:"text-destructive text-sm",children:h})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[l.length>0?(0,t.jsxs)(ta.Select,{value:g,onValueChange:function(e){x(e),m("")},disabled:a,children:[(0,t.jsx)(ta.SelectTrigger,{"aria-label":"Select owner",children:(0,t.jsx)(ta.SelectValue,{placeholder:"Select owner"})}),(0,t.jsxs)(ta.SelectContent,{children:[(0,t.jsx)(ta.SelectItem,{value:to,children:"My repositories"}),l.map(e=>(0,t.jsx)(ta.SelectItem,{value:e.login,children:e.login},e.login))]})]}):null,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(e9.Search,{className:"text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2"}),(0,t.jsx)(e4.Input,{placeholder:"Search repositories...",value:p,onChange:e=>{var t;m(t=e.target.value),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{v(t||void 0,g)},300)},className:"ps-9",disabled:a,"aria-label":"Search repositories"})]}),(0,t.jsx)("div",{className:"max-h-64 overflow-x-hidden overflow-y-auto rounded-md border",role:"listbox","aria-label":"GitHub repositories",children:u?(0,t.jsx)("div",{className:"flex flex-col gap-2 p-3","data-testid":"repo-browser-loading",children:Array.from({length:5}).map((e,r)=>(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)(tr.Skeleton,{className:"h-4 w-48"}),(0,t.jsx)(tr.Skeleton,{className:"h-3 w-72"})]},`skeleton-${String(r)}`))}):0===s.length?(0,t.jsx)("div",{className:"text-muted-foreground py-8 text-center text-sm","data-testid":"repo-browser-empty",children:"No repositories found"}):s.map(r=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!1,className:"hover:bg-accent flex w-full items-start gap-2 border-b px-3 py-2.5 text-start last:border-b-0 disabled:opacity-50",onClick:()=>e(r.nameWithOwner),disabled:a,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:r.nameWithOwner}),(0,t.jsx)(tt.Badge,{variant:r.isPrivate?"secondary":"outline",className:"shrink-0 text-xs",children:r.isPrivate?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e7,{className:"me-1 h-3 w-3"}),"Private"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e8.Globe,{className:"me-1 h-3 w-3"}),"Public"]})})]}),r.description?(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 truncate text-xs",children:r.description}):null]}),a?(0,t.jsx)(ey.Loader2,{className:"mt-0.5 h-4 w-4 shrink-0 animate-spin"}):null]},r.nameWithOwner))})]})}let tc=(0,tn.createServerReference)("40c7484a8328a9ad002ec86475c43c9cf8e4c6dd86",tn.callServer,void 0,tn.findSourceMapURL,"importGitHubRepository");function tu({open:e,onOpenChange:a,onImportComplete:n}){let[i,s]=(0,r.useState)(!1),[o,l]=(0,r.useState)("");async function c(e){s(!0),l("");try{let t=await tc({url:e});t.error?l(t.error):t.repository&&(n(t.repository),a(!1))}catch{l("An unexpected error occurred")}finally{s(!1)}}return(0,t.jsx)(e1.Dialog,{open:e,onOpenChange:a,children:(0,t.jsxs)(e1.DialogContent,{className:"overflow-hidden sm:max-w-lg",children:[(0,t.jsxs)(e1.DialogHeader,{children:[(0,t.jsx)(e1.DialogTitle,{children:"Import from GitHub"}),(0,t.jsx)(e1.DialogDescription,{children:"Clone a GitHub repository and add it to Shep."})]}),(0,t.jsxs)(e2.Tabs,{defaultValue:"url",className:"min-w-0",children:[(0,t.jsxs)(e2.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(e2.TabsTrigger,{value:"url",children:"URL"}),(0,t.jsx)(e2.TabsTrigger,{value:"browse",children:"Browse"})]}),(0,t.jsx)(e2.TabsContent,{value:"url",className:"mt-4",children:(0,t.jsx)(e6,{onSubmit:c,loading:i})}),(0,t.jsx)(e2.TabsContent,{value:"browse",className:"mt-4",children:(0,t.jsx)(tl,{onSelect:c,loading:i})})]}),o?(0,t.jsx)("p",{className:"text-destructive text-sm",role:"alert",children:o}):null]})})}var td=e.i(39443),th=e.i(30153),tf=e.i(5147),tp=e.i(60112),tm=e.i(17406);let tg={[tm.NotificationSeverity.Success]:"success",[tm.NotificationSeverity.Error]:"error",[tm.NotificationSeverity.Warning]:"warning",[tm.NotificationSeverity.Info]:"info"},tx={[tm.NotificationSeverity.Success]:"notification-success",[tm.NotificationSeverity.Error]:"notification-error",[tm.NotificationSeverity.Warning]:"notification-warning",[tm.NotificationSeverity.Info]:"notification-info"};var tb=e.i(75921);function tv({children:e,sidebarOpen:n}){let i=(0,a.useRouter)(),{guardedNavigate:o}=(0,th.useDrawerCloseGuard)(),l=(0,tb.useFeatureFlags)();!function(){let e=(0,a.useRouter)(),{events:t}=(0,td.useAgentEventsContext)(),n=(0,ec.useSoundAction)("notification-success"),i=(0,ec.useSoundAction)("notification-error"),s=(0,ec.useSoundAction)("notification-warning"),o=(0,ec.useSoundAction)("notification-info"),l=(0,r.useMemo)(()=>({"notification-success":n,"notification-error":i,"notification-warning":s,"notification-info":o}),[n,i,s,o]),c=(0,r.useRef)(0);(0,r.useEffect)(()=>{if(t.length<=c.current)return;let r=t.slice(c.current);for(let a of(c.current=t.length,r)){if(a.eventType!==tm.NotificationEventType.MergeReviewReady&&a.severity!==tm.NotificationSeverity.Error&&a.severity!==tm.NotificationSeverity.Warning&&a.severity!==tm.NotificationSeverity.Success)continue;!function(e,t){let r=tg[e.severity]??"info",a=e.eventType===tm.NotificationEventType.WaitingApproval||e.eventType===tm.NotificationEventType.MergeReviewReady;tp.toast[r](e.featureName,{description:e.message,...a&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(a,t=>e.push(t));let t=tx[a.severity];l[t]?.play()}},[t,l,e])}();let{features:c}=(0,tf.useSidebarFeaturesContext)(),u=(0,r.useCallback)(e=>{o(()=>i.push(`/feature/${e}`))},[i,o]),[d,h]=(0,r.useState)(!1),[f,p]=(0,r.useState)(!1),[m,g]=(0,r.useState)(!1),x=(0,r.useCallback)(async()=>{if(!d){if(l.reactFileManager)return void g(!0);h(!0);try{let e=await (0,e0.pickFolder)();e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))}catch{g(!0)}finally{h(!1)}}},[d,l.reactFileManager]);(0,r.useEffect)(()=>{let e=()=>{x()};return window.addEventListener("shep:pick-folder",e),()=>window.removeEventListener("shep:pick-folder",e)},[x]),(0,r.useEffect)(()=>{let e=()=>p(!0);return window.addEventListener("shep:open-github-import",e),()=>window.removeEventListener("shep:open-github-import",e)},[]);let b=(0,r.useCallback)(e=>{e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}})),g(!1)},[]),v=(0,r.useCallback)(e=>{e.path&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e.path}}))},[]);return(0,t.jsxs)(s.SidebarProvider,{defaultOpen:n??!1,children:[(0,t.jsx)(eI,{features:c,featureFlags:l,onFeatureClick:u}),(0,t.jsx)(s.SidebarInset,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsx)("main",{className:"h-full",children:e}),(0,t.jsx)(eZ,{}),l.githubImport?(0,t.jsx)(tu,{open:f,onOpenChange:p,onImportComplete:v}):null]})}),(0,t.jsx)(eH.ReactFileManagerDialog,{open:m,onOpenChange:e=>{e||g(!1)},onSelect:b})]})}function ty({children:e}){return(0,t.jsx)(eY.TurnStatusesProvider,{children:e})}function tw({children:e,sidebarOpen:r}){let{i18n:a}=(0,n.useTranslation)(),s=a.dir();return(0,t.jsx)(i.Direction.Provider,{dir:s,children:(0,t.jsx)(td.AgentEventsProvider,{children:(0,t.jsx)(th.DrawerCloseGuardProvider,{children:(0,t.jsx)(tf.SidebarFeaturesProvider,{children:(0,t.jsx)(ty,{children:(0,t.jsx)(tv,{sidebarOpen:r,children:e})})})})})})}e.s(["AppShell",()=>tw],87292)},25251,e=>{"use strict";var t=e.i(20314),r=e.i(60112);let a=({...e})=>(0,t.jsx)(r.Toaster,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e});e.s(["Toaster",()=>a])},4858,e=>{"use strict";var t=e.i(20314),r=e.i(3),a=e.i(28574),n=e.i(6786),i=e.i(77501),s=class extends i.Subscribable{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let i=t.queryKey,s=t.queryHash??(0,r.hashQueryKeyByOptions)(i,t),o=this.get(s);return o||(o=new a.Query({client:e,queryKey:i,queryHash:s,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(i)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){n.notifyManager.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,r.matchQuery)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,r.matchQuery)(e,t)):t}notify(e){n.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){n.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){n.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},o=e.i(87975),l=i,c=class extends l.Subscribable{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#r=new Map,this.#a=0}#t;#r;#a;build(e,t,r){let a=new o.Mutation({client:e,mutationCache:this,mutationId:++this.#a,options:e.defaultMutationOptions(t),state:r});return this.add(a),a}add(e){this.#t.add(e);let t=u(e);if("string"==typeof t){let r=this.#r.get(t);r?r.push(e):this.#r.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=u(e);if("string"==typeof t){let r=this.#r.get(t);if(r)if(r.length>1){let t=r.indexOf(e);-1!==t&&r.splice(t,1)}else r[0]===e&&this.#r.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=u(e);if("string"!=typeof t)return!0;{let r=this.#r.get(t),a=r?.find(e=>"pending"===e.state.status);return!a||a===e}}runNext(e){let t=u(e);if("string"!=typeof t)return Promise.resolve();{let r=this.#r.get(t)?.find(t=>t!==e&&t.state.isPaused);return r?.continue()??Promise.resolve()}}clear(){n.notifyManager.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#r.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,r.matchMutation)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,r.matchMutation)(e,t))}notify(e){n.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return n.notifyManager.batch(()=>Promise.all(e.map(e=>e.continue().catch(r.noop))))}};function u(e){return e.options.scope?.id}var d=e.i(4520),h=e.i(13598);function f(e){return{onFetch:(t,a)=>{let n=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,s=t.state.data?.pages||[],o=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},c=0,u=async()=>{let a=!1,u=(0,r.ensureQueryFn)(t.options,t.fetchOptions),d=async(e,n,i)=>{let s;if(a)return Promise.reject();if(null==n&&e.pages.length)return Promise.resolve(e);let o=(s={client:t.client,queryKey:t.queryKey,pageParam:n,direction:i?"backward":"forward",meta:t.options.meta},(0,r.addConsumeAwareSignal)(s,()=>t.signal,()=>a=!0),s),l=await u(o),{maxPages:c}=t.options,d=i?r.addToStart:r.addToEnd;return{pages:d(e.pages,l,c),pageParams:d(e.pageParams,n,c)}};if(i&&s.length){let e="backward"===i,t={pages:s,pageParams:o},r=(e?function(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}:p)(n,t);l=await d(t,r,e)}else{let t=e??s.length;do{let e=0===c?o[0]??n.initialPageParam:p(n,l);if(c>0&&null==e)break;l=await d(l,e),c++}while(c<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a):t.fetchFn=u}}}function p(e,{pages:t,pageParams:r}){let a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,r[a],r):void 0}var m=class{#n;#i;#s;#o;#l;#c;#u;#d;constructor(e={}){this.#n=e.queryCache||new s,this.#i=e.mutationCache||new c,this.#s=e.defaultOptions||{},this.#o=new Map,this.#l=new Map,this.#c=0}mount(){this.#c++,1===this.#c&&(this.#u=d.focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#n.onFocus())}),this.#d=h.onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#n.onOnline())}))}unmount(){this.#c--,0===this.#c&&(this.#u?.(),this.#u=void 0,this.#d?.(),this.#d=void 0)}isFetching(e){return this.#n.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#i.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#n.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),a=this.#n.build(this,t),n=a.state.data;return void 0===n?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime((0,r.resolveStaleTime)(t.staleTime,a))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#n.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,a){let n=this.defaultQueryOptions({queryKey:e}),i=this.#n.get(n.queryHash),s=i?.state.data,o=(0,r.functionalUpdate)(t,s);if(void 0!==o)return this.#n.build(this,n).setData(o,{...a,manual:!0})}setQueriesData(e,t,r){return n.notifyManager.batch(()=>this.#n.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#n.get(t.queryHash)?.state}removeQueries(e){let t=this.#n;n.notifyManager.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let r=this.#n;return n.notifyManager.batch(()=>(r.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let a={revert:!0,...t};return Promise.all(n.notifyManager.batch(()=>this.#n.findAll(e).map(e=>e.cancel(a)))).then(r.noop).catch(r.noop)}invalidateQueries(e,t={}){return n.notifyManager.batch(()=>(this.#n.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let a={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(n.notifyManager.batch(()=>this.#n.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,a);return a.throwOnError||(t=t.catch(r.noop)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(r.noop)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let a=this.#n.build(this,t);return a.isStaleByTime((0,r.resolveStaleTime)(t.staleTime,a))?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(r.noop).catch(r.noop)}fetchInfiniteQuery(e){return e.behavior=f(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(r.noop).catch(r.noop)}ensureInfiniteQueryData(e){return e.behavior=f(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return h.onlineManager.isOnline()?this.#i.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#n}getMutationCache(){return this.#i}getDefaultOptions(){return this.#s}setDefaultOptions(e){this.#s=e}setQueryDefaults(e,t){this.#o.set((0,r.hashKey)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#o.values()],a={};return t.forEach(t=>{(0,r.partialMatchKey)(e,t.queryKey)&&Object.assign(a,t.defaultOptions)}),a}setMutationDefaults(e,t){this.#l.set((0,r.hashKey)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],a={};return t.forEach(t=>{(0,r.partialMatchKey)(e,t.mutationKey)&&Object.assign(a,t.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#s.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,r.hashQueryKeyByOptions)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===r.skipToken&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#s.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#n.clear(),this.#i.clear()}},g=e.i(34682),x=e.i(79054);function b({children:e}){let[r]=(0,x.useState)(()=>new m({defaultOptions:{queries:{staleTime:1e3,refetchOnWindowFocus:!1}}}));return(0,t.jsx)(g.QueryClientProvider,{client:r,children:e})}e.s(["QueryProvider",()=>b],4858)},10644,e=>{"use strict";let t;var r=e.i(20314),a=e.i(79054);e.i(41001);var n=e.i(14827),i=e.i(99065),s=e.i(83100),o=e.i(37465),l=e.i(51193),c=e.i(55431),u=e.i(60280),d=e.i(40266),h=e.i(50784),f=e.i(28191),p=e.i(71363),m=e.i(53493),g=e.i(22307),x=e.i(44225),b=e.i(62305),v=e.i(51943),y=e.i(88158),w=e.i(39711),C=e.i(32456);let j=((t=i.default.createInstance()).use(s.initReactI18next).init({lng:"en",fallbackLng:"en",defaultNS:"common",ns:["common","web"],resources:{en:{common:o.default,web:l.default},ru:{common:c.default,web:u.default},pt:{common:d.default,web:h.default},es:{common:f.default,web:p.default},ar:{common:m.default,web:g.default},he:{common:x.default,web:b.default},fr:{common:v.default,web:y.default},de:{common:w.default,web:C.default}},interpolation:{escapeValue:!1},react:{useSuspense:!1}}),t),S={ar:{family:"Noto Sans Arabic",cssUrl:"https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap"},he:{family:"Noto Sans Hebrew",cssUrl:"https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400;500;600;700&display=swap"}};function k(e){let t=S[e];if(document.documentElement.classList.remove("font-rtl-arabic","font-rtl-hebrew"),!t)return void document.documentElement.style.removeProperty("--font-rtl");document.documentElement.style.setProperty("--font-rtl",`"${t.family}"`),document.documentElement.classList.add("ar"===e?"font-rtl-arabic":"font-rtl-hebrew");let r=`rtl-font-${e}`;if(!document.getElementById(r)){let e=document.createElement("link");e.id=r,e.rel="stylesheet",e.href=t.cssUrl,document.head.appendChild(e)}}function N({initialLanguage:e,children:t}){return(0,a.useEffect)(()=>{j.language!==e&&j.changeLanguage(e),k(e)},[e]),(0,a.useEffect)(()=>{function e(e){k(e)}return j.on("languageChanged",e),()=>{j.off("languageChanged",e)}},[]),(0,r.jsx)(n.I18nextProvider,{i18n:j,children:t})}e.s(["I18nProvider",()=>N],10644)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,956,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(31777);let s=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...a}));s.displayName="Card";let i=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",e),...a}));i.displayName="CardHeader";let d=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("leading-none font-semibold tracking-tight",e),...a}));d.displayName="CardTitle";let c=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("text-muted-foreground text-sm",e),...a}));c.displayName="CardDescription";let l=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("p-6 pt-0",e),...a}));l.displayName="CardContent",a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter",e.s(["Card",()=>s,"CardContent",()=>l,"CardDescription",()=>c,"CardHeader",()=>i,"CardTitle",()=>d])},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},10714,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},3214,e=>{"use strict";let t=(0,e.i(3645).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],3214)},58860,44229,e=>{"use strict";let t=(0,e.i(3645).default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);e.s(["Timer",()=>t],58860);var a=e.i(93752);e.s(["Code",()=>a.default],44229)},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},51911,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(91967),s=e.i(5978),i=e.i(22528),d=e.i(36589),c=e.i(23405),l=e.i(77624),n=e.i(87620),o="Switch",[u,p]=(0,i.createContextScope)(o),[f,h]=u(o),m=a.forwardRef((e,i)=>{let{__scopeSwitch:c,name:l,checked:u,defaultChecked:p,required:h,disabled:m,value:y="on",onCheckedChange:k,form:g,...w}=e,[v,C]=a.useState(null),R=(0,s.useComposedRefs)(i,e=>C(e)),N=a.useRef(!1),j=!v||g||!!v.closest("form"),[S,z]=(0,d.useControllableState)({prop:u,defaultProp:p??!1,onChange:k,caller:o});return(0,t.jsxs)(f,{scope:c,checked:S,disabled:m,children:[(0,t.jsx)(n.Primitive.button,{type:"button",role:"switch","aria-checked":S,"aria-required":h,"data-state":x(S),"data-disabled":m?"":void 0,disabled:m,value:y,...w,ref:R,onClick:(0,r.composeEventHandlers)(e.onClick,e=>{z(e=>!e),j&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),j&&(0,t.jsx)(b,{control:v,bubbles:!N.current,name:l,value:y,checked:S,required:h,disabled:m,form:g,style:{transform:"translateX(-100%)"}})]})});m.displayName=o;var y="SwitchThumb",k=a.forwardRef((e,a)=>{let{__scopeSwitch:r,...s}=e,i=h(y,r);return(0,t.jsx)(n.Primitive.span,{"data-state":x(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:a})});k.displayName=y;var b=a.forwardRef(({__scopeSwitch:e,control:r,checked:i,bubbles:d=!0,...n},o)=>{let u=a.useRef(null),p=(0,s.useComposedRefs)(u,o),f=(0,c.usePrevious)(i),h=(0,l.useSize)(r);return a.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(f!==i&&t){let a=new Event("click",{bubbles:d});t.call(e,i),e.dispatchEvent(a)}},[f,i,d]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...n,tabIndex:-1,ref:p,style:{...n.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function x(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>k,"Thumb",()=>k,"createSwitchScope",()=>p],95291);var g=e.i(95291),g=g,w=e.i(31777);function v({className:e,size:a="default",...r}){return(0,t.jsx)(g.Root,{"data-slot":"switch","data-size":a,className:(0,w.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...r,children:(0,t.jsx)(g.Thumb,{"data-slot":"switch-thumb",className:(0,w.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>v],51911)}]);