@shepai/cli 1.163.0 → 1.164.0-pr514.db33061

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 (311) hide show
  1. package/README.md +12 -0
  2. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +3 -1
  3. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +19 -0
  5. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +7 -1
  7. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts +2 -0
  9. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.js +1 -1
  11. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-add-session-usage-tracking.d.ts +18 -0
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-add-session-usage-tracking.d.ts.map +1 -0
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-add-session-usage-tracking.js +32 -0
  14. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +12 -0
  15. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +31 -0
  17. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +38 -7
  18. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +152 -45
  20. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +17 -1
  21. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  22. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +131 -47
  23. package/dist/src/presentation/web/app/actions/get-git-log.d.ts +44 -0
  24. package/dist/src/presentation/web/app/actions/get-git-log.d.ts.map +1 -0
  25. package/dist/src/presentation/web/app/actions/get-git-log.js +125 -0
  26. package/dist/src/presentation/web/app/actions/open-folder.d.ts.map +1 -1
  27. package/dist/src/presentation/web/app/actions/open-folder.js +5 -2
  28. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.d.ts.map +1 -1
  29. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.js +3 -1
  30. package/dist/src/presentation/web/components/assistant-ui/thread.js +8 -1
  31. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
  32. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +46 -15
  34. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +77 -5
  36. package/dist/src/presentation/web/components/common/control-center-drawer/use-drawer-sync.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/common/control-center-drawer/use-drawer-sync.js +11 -0
  38. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.d.ts.map +1 -1
  39. package/dist/src/presentation/web/components/common/deployment-status-badge/deployment-status-badge.js +10 -9
  40. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +5 -1
  41. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +24 -13
  43. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +56 -81
  45. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/common/open-action-menu/open-action-menu.js +11 -6
  47. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  48. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/chat/ChatTab.js +13 -7
  50. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +16 -0
  51. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +98 -7
  53. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +1 -1
  55. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +7 -2
  57. package/dist/src/presentation/web/hooks/use-animations-enabled.d.ts +6 -0
  58. package/dist/src/presentation/web/hooks/use-animations-enabled.d.ts.map +1 -0
  59. package/dist/src/presentation/web/hooks/use-animations-enabled.js +30 -0
  60. package/dist/tsconfig.build.tsbuildinfo +1 -1
  61. package/package.json +2 -2
  62. package/web/.next/BUILD_ID +1 -1
  63. package/web/.next/build-manifest.json +2 -2
  64. package/web/.next/fallback-build-manifest.json +2 -2
  65. package/web/.next/prerender-manifest.json +3 -3
  66. package/web/.next/required-server-files.js +3 -3
  67. package/web/.next/required-server-files.json +3 -3
  68. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  69. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  72. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  75. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  78. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  81. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  82. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +69 -54
  84. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  86. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +69 -54
  88. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  89. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  92. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  93. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  95. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  96. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  97. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  98. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  101. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  102. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  103. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  104. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +69 -54
  107. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  108. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  109. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +69 -54
  111. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  112. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  113. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  115. package/web/.next/server/app/_global-error.html +2 -2
  116. package/web/.next/server/app/_global-error.rsc +1 -1
  117. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  118. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  119. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  120. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  121. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  122. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  123. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  124. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  126. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  127. package/web/.next/server/app/api/graph-data/route.js +1 -1
  128. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  129. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  130. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  131. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  132. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  133. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  134. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  135. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  137. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  138. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  139. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  140. package/web/.next/server/app/version/page.js.nft.json +1 -1
  141. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  142. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js +1 -1
  143. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js.map +1 -1
  144. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  145. package/web/.next/server/chunks/{[root-of-the-server]__beda892a._.js → [root-of-the-server]__c78383b1._.js} +2 -2
  146. package/web/.next/server/chunks/{[root-of-the-server]__beda892a._.js.map → [root-of-the-server]__c78383b1._.js.map} +1 -1
  147. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js +1 -1
  148. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  149. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  151. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/{7f428_lucide-react_dist_esm_icons_4b319ae6._.js → 7f428_lucide-react_dist_esm_icons_281e0ef8._.js} +2 -2
  153. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +1 -0
  154. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +3 -0
  155. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +1 -0
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js +2 -2
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +7 -0
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -0
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0be67c7._.js +3 -0
  181. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0be67c7._.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/{_8b57edb8._.js → _0020fddd._.js} +2 -2
  183. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +1 -0
  184. package/web/.next/server/chunks/ssr/_02e01240._.js +4 -0
  185. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  187. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/_0727935d._.js +1 -1
  189. package/web/.next/server/chunks/ssr/_0727935d._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  191. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/_18886033._.js +4 -0
  193. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -0
  194. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  195. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/_4d49a312._.js +3 -0
  197. package/web/.next/server/chunks/ssr/_4d49a312._.js.map +1 -0
  198. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  199. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/_7a6f6a76._.js +3 -0
  201. package/web/.next/server/chunks/ssr/_7a6f6a76._.js.map +1 -0
  202. package/web/.next/server/chunks/ssr/{_def82237._.js → _8276397a._.js} +2 -2
  203. package/web/.next/server/chunks/ssr/{_def82237._.js.map → _8276397a._.js.map} +1 -1
  204. package/web/.next/server/chunks/ssr/_9215e9ec._.js +3 -0
  205. package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  207. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  208. package/web/.next/server/chunks/ssr/_ad09f271._.js +4 -0
  209. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/_b7a43c05._.js +3 -0
  211. package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +1 -0
  212. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  213. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/_c45aee16._.js +3 -0
  215. package/web/.next/server/chunks/ssr/_c45aee16._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/{_ce97386b._.js → _cc654b75._.js} +3 -3
  217. package/web/.next/server/chunks/ssr/_cc654b75._.js.map +1 -0
  218. package/web/.next/server/chunks/ssr/_ea9e1556._.js +4 -0
  219. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -0
  220. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  221. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  223. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  225. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/{_b881a389._.js → _fdc356bf._.js} +2 -2
  227. package/web/.next/server/chunks/ssr/_fdc356bf._.js.map +1 -0
  228. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  229. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  231. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  233. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  234. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  235. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  238. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  239. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  240. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  241. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
  242. package/web/.next/server/pages/500.html +2 -2
  243. package/web/.next/server/server-reference-manifest.js +1 -1
  244. package/web/.next/server/server-reference-manifest.json +190 -154
  245. package/web/.next/static/chunks/16eea21868510afd.js +5 -0
  246. package/web/.next/static/chunks/1ad664f7081cf4c0.js +1 -0
  247. package/web/.next/static/chunks/{0613d3829ce90fe9.js → 4788a37d8c608e30.js} +1 -1
  248. package/web/.next/static/chunks/4f7d9c08a205bc4e.js +1 -0
  249. package/web/.next/static/chunks/5d8c83c576ec1a7b.js +1 -0
  250. package/web/.next/static/chunks/779b5c49587b074e.js +1 -0
  251. package/web/.next/static/chunks/7cec51e9bd7d1f4f.js +1 -0
  252. package/web/.next/static/chunks/{780f688b8568331d.js → 7d40e79e524c8d18.js} +2 -2
  253. package/web/.next/static/chunks/{5f40b5c4f859b573.js → 8094762f5cda4934.js} +1 -1
  254. package/web/.next/static/chunks/9162bb869b3543e2.js +7 -0
  255. package/web/.next/static/chunks/940bca62e44f3e90.js +5 -0
  256. package/web/.next/static/chunks/966eb2688300b7f5.js +1 -0
  257. package/web/.next/static/chunks/971e52f3f386ccfd.js +1 -0
  258. package/web/.next/static/chunks/a760d5829014058d.js +1 -0
  259. package/web/.next/static/chunks/b63e6727c84f30e2.js +1 -0
  260. package/web/.next/static/chunks/d6a1a06ee3c12489.js +1 -0
  261. package/web/.next/static/chunks/dedf6ca63c5468fa.js +5 -0
  262. package/web/.next/static/chunks/e77d053610055e0c.js +1 -0
  263. package/web/.next/static/chunks/{0d9e3aa7e10cf6e6.js → ee9fe376b60c3cab.js} +2 -2
  264. package/web/.next/static/chunks/eeadf13c0ea6cbe0.css +1 -0
  265. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_4b319ae6._.js.map +0 -1
  266. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5ceba65._.js +0 -3
  267. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5ceba65._.js.map +0 -1
  268. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js +0 -7
  269. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js.map +0 -1
  270. package/web/.next/server/chunks/ssr/_075fae20._.js +0 -4
  271. package/web/.next/server/chunks/ssr/_075fae20._.js.map +0 -1
  272. package/web/.next/server/chunks/ssr/_125c55af._.js +0 -4
  273. package/web/.next/server/chunks/ssr/_125c55af._.js.map +0 -1
  274. package/web/.next/server/chunks/ssr/_391e499a._.js +0 -3
  275. package/web/.next/server/chunks/ssr/_391e499a._.js.map +0 -1
  276. package/web/.next/server/chunks/ssr/_573caadf._.js +0 -3
  277. package/web/.next/server/chunks/ssr/_573caadf._.js.map +0 -1
  278. package/web/.next/server/chunks/ssr/_628621c7._.js +0 -4
  279. package/web/.next/server/chunks/ssr/_628621c7._.js.map +0 -1
  280. package/web/.next/server/chunks/ssr/_68996e5b._.js +0 -3
  281. package/web/.next/server/chunks/ssr/_68996e5b._.js.map +0 -1
  282. package/web/.next/server/chunks/ssr/_8b57edb8._.js.map +0 -1
  283. package/web/.next/server/chunks/ssr/_9412b27f._.js +0 -4
  284. package/web/.next/server/chunks/ssr/_9412b27f._.js.map +0 -1
  285. package/web/.next/server/chunks/ssr/_ac4a3873._.js +0 -3
  286. package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +0 -1
  287. package/web/.next/server/chunks/ssr/_b881a389._.js.map +0 -1
  288. package/web/.next/server/chunks/ssr/_ce97386b._.js.map +0 -1
  289. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +0 -3
  290. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +0 -1
  291. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js +0 -3
  292. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js.map +0 -1
  293. package/web/.next/static/chunks/0a79dfbb8486b66e.js +0 -5
  294. package/web/.next/static/chunks/14d9d9181bb4e337.js +0 -1
  295. package/web/.next/static/chunks/4581eaf51543601d.js +0 -1
  296. package/web/.next/static/chunks/47477ed4c5871747.js +0 -1
  297. package/web/.next/static/chunks/74db65fa7bfb80bd.js +0 -1
  298. package/web/.next/static/chunks/8b64414cdb4a4dc7.js +0 -1
  299. package/web/.next/static/chunks/bf55fb50a69f7350.js +0 -5
  300. package/web/.next/static/chunks/c04ada25ace6f30c.js +0 -1
  301. package/web/.next/static/chunks/c3a67566f78b5bc3.js +0 -1
  302. package/web/.next/static/chunks/ca8752df0e809c1b.js +0 -7
  303. package/web/.next/static/chunks/d2cbeefbc8967b16.js +0 -1
  304. package/web/.next/static/chunks/d39ae882d080aa52.js +0 -1
  305. package/web/.next/static/chunks/d6e702c209c413ce.js +0 -5
  306. package/web/.next/static/chunks/dbfbd9d9ee5eb2d0.js +0 -1
  307. package/web/.next/static/chunks/dc39dd4276779dec.js +0 -1
  308. package/web/.next/static/chunks/e779296e738a812b.css +0 -1
  309. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → lQkUWQQS5aR4vq6WUZ2yr}/_buildManifest.js +0 -0
  310. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → lQkUWQQS5aR4vq6WUZ2yr}/_clientMiddlewareManifest.json +0 -0
  311. /package/web/.next/static/{qfCnoWSr4qmt2_dT28B-O → lQkUWQQS5aR4vq6WUZ2yr}/_ssgManifest.js +0 -0
@@ -0,0 +1,5 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,43698,e=>{"use strict";let t=(0,e.i(3645).default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["default",()=>t])},64764,80436,17087,e=>{"use strict";var t=e.i(15506);e.s(["Loader2Icon",()=>t.default],64764);var o=e.i(95230);e.s(["DownloadIcon",()=>o.default],80436);let r=(0,e.i(3645).default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);e.s(["StickyNoteIcon",()=>r],17087)},48306,e=>{"use strict";var t=e.i(20314),o=e.i(31777);function r({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,o.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}e.s(["Textarea",()=>r])},28267,57484,e=>{"use strict";var t=e.i(1693);e.s(["VisuallyHidden",0,t],28267);let o=(0,e.i(3645).default)("file",[["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"}]]);e.s(["FileIcon",()=>o],57484)},16298,e=>{"use strict";let t=(0,e.i(3645).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["default",()=>t])},50032,86254,e=>{"use strict";var t=e.i(20314),o=e.i(60253),r=e.i(64764),n=e.i(80436),a=e.i(17087),i=e.i(31777),l=e.i(2287),s=e.i(48306),d=e.i(2828),c=e.i(28267),u=e.i(57484),p=e.i(16298),p=p;let f=(0,e.i(3645).default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var g=e.i(93752),g=g;e.i(35364);let m=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),x=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function h(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}let v=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function b(e,t){let o=new URLSearchParams({path:e,mimeType:t});return`/api/attachments/preview?${o.toString()}`}function y({name:e,size:y,mimeType:w,path:j,onRemove:C,loading:D=!1,disabled:k=!1,notes:T,onNotesChange:N}){let R,E,P=(R=e.lastIndexOf("."))>=0?e.slice(R).toLowerCase():"",I=m.has(P)?f:".pdf"===P?p.default:x.has(P)?g.default:u.FileIcon,M=".pdf"===P?"bg-red-50 text-red-600":m.has(P)?"bg-blue-50 text-blue-600":x.has(P)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",_=(E=e.lastIndexOf("."))>=0&&v.has(e.slice(E).toLowerCase());if(D)return(0,t.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,t.jsx)(r.Loader2Icon,{className:"text-muted-foreground h-5 w-5 animate-spin"})});if(_){let r=(0,t.jsxs)("button",{type:"button",className:"relative block cursor-pointer rounded-md",children:[(0,t.jsx)("img",{src:b(j,w),alt:e,title:e,className:"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80"}),T?(0,t.jsx)("span",{className:"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2",children:(0,t.jsx)(a.StickyNoteIcon,{className:"h-2.5 w-2.5"})}):null]});return(0,t.jsx)(d.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(l.Dialog,{children:[(0,t.jsxs)(d.Tooltip,{children:[(0,t.jsxs)("div",{className:"group relative",children:[(0,t.jsx)(d.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(l.DialogTrigger,{asChild:!0,children:r})}),!k&&(0,t.jsx)("button",{type:"button",onClick:C,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${e}`,children:(0,t.jsx)(o.X,{className:"h-3 w-3"})})]}),T?(0,t.jsx)(d.TooltipContent,{side:"bottom",className:"max-w-[220px] border border-amber-200 bg-amber-50 text-amber-950 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100",children:(0,t.jsx)("p",{className:"line-clamp-3 text-xs leading-snug",children:T})}):null]}),(0,t.jsxs)(l.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)(c.VisuallyHidden.Root,{children:(0,t.jsxs)(l.DialogTitle,{children:["Preview: ",e]})}),(0,t.jsx)("div",{className:"relative bg-black/90",children:(0,t.jsx)("img",{src:b(j,w),alt:e,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,t.jsxs)("div",{className:"bg-background flex flex-col gap-2 px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:h(y)})]}),(0,t.jsx)("a",{href:b(j,w),download:e,className:"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors","aria-label":`Download ${e}`,children:(0,t.jsx)(n.DownloadIcon,{className:"h-4 w-4"})})]}),N?(0,t.jsx)(s.Textarea,{placeholder:"Add notes about this image…",value:T??"",onChange:e=>N(e.target.value),rows:2,className:"resize-none text-sm","aria-label":"Image notes"}):T?(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:T}):null]})]})]})})}return(0,t.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3",children:[(0,t.jsx)("div",{className:(0,i.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",M),children:(0,t.jsx)(I,{className:"h-3 w-3"})}),(0,t.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:e}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:h(y)}),!k&&(0,t.jsx)("button",{type:"button",onClick:C,className:"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex","aria-label":`Remove ${e}`,children:(0,t.jsx)(o.X,{className:"h-3 w-3"})})]})}e.s(["AttachmentChip",()=>y],86254),e.s([],50032)},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},25235,e=>{"use strict";var t=e.i(20314),o=e.i(79054),r=e.i(87620),n="horizontal",a=["horizontal","vertical"],i=o.forwardRef((e,o)=>{var i;let{decorative:l,orientation:s=n,...d}=e,c=(i=s,a.includes(i))?s:n;return(0,t.jsx)(r.Primitive.div,{"data-orientation":c,...l?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"},...d,ref:o})});i.displayName="Separator",e.s(["Root",()=>i,"Separator",()=>i],47402);var l=e.i(47402),l=l,s=e.i(31777);function d({className:e,orientation:o="horizontal",decorative:r=!0,...n}){return(0,t.jsx)(l.Root,{"data-slot":"separator",decorative:r,orientation:o,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...n})}e.s(["Separator",()=>d],25235)},90537,e=>{"use strict";let t=(0,e.i(3645).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>t])},48249,e=>{"use strict";var t=e.i(90537);e.s(["XIcon",()=>t.default])},567,e=>{"use strict";var t=e.i(79054),o=e.i(91967),r=e.i(5978),n=e.i(22528),a=e.i(13123),i=e.i(36589),l=e.i(53532),s=e.i(56720),d=e.i(39979),c=e.i(85995),u=e.i(87620),p=e.i(41687),f=e.i(13044),g=e.i(73772),m=e.i(86874),x=e.i(20314),h="Dialog",[v,b]=(0,n.createContextScope)(h),[y,w]=v(h),j=e=>{let{__scopeDialog:o,children:r,open:n,defaultOpen:l,onOpenChange:s,modal:d=!0}=e,c=t.useRef(null),u=t.useRef(null),[p,f]=(0,i.useControllableState)({prop:n,defaultProp:l??!1,onChange:s,caller:h});return(0,x.jsx)(y,{scope:o,triggerRef:c,contentRef:u,contentId:(0,a.useId)(),titleId:(0,a.useId)(),descriptionId:(0,a.useId)(),open:p,onOpenChange:f,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),modal:d,children:r})};j.displayName=h;var C="DialogTrigger",D=t.forwardRef((e,t)=>{let{__scopeDialog:n,...a}=e,i=w(C,n),l=(0,r.useComposedRefs)(t,i.triggerRef);return(0,x.jsx)(u.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":U(i.open),...a,ref:l,onClick:(0,o.composeEventHandlers)(e.onClick,i.onOpenToggle)})});D.displayName=C;var k="DialogPortal",[T,N]=v(k,{forceMount:void 0}),R=e=>{let{__scopeDialog:o,forceMount:r,children:n,container:a}=e,i=w(k,o);return(0,x.jsx)(T,{scope:o,forceMount:r,children:t.Children.map(n,e=>(0,x.jsx)(c.Presence,{present:r||i.open,children:(0,x.jsx)(d.Portal,{asChild:!0,container:a,children:e})}))})};R.displayName=k;var E="DialogOverlay",P=t.forwardRef((e,t)=>{let o=N(E,e.__scopeDialog),{forceMount:r=o.forceMount,...n}=e,a=w(E,e.__scopeDialog);return a.modal?(0,x.jsx)(c.Presence,{present:r||a.open,children:(0,x.jsx)(M,{...n,ref:t})}):null});P.displayName=E;var I=(0,m.createSlot)("DialogOverlay.RemoveScroll"),M=t.forwardRef((e,t)=>{let{__scopeDialog:o,...r}=e,n=w(E,o);return(0,x.jsx)(f.RemoveScroll,{as:I,allowPinchZoom:!0,shards:[n.contentRef],children:(0,x.jsx)(u.Primitive.div,{"data-state":U(n.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),_="DialogContent",S=t.forwardRef((e,t)=>{let o=N(_,e.__scopeDialog),{forceMount:r=o.forceMount,...n}=e,a=w(_,e.__scopeDialog);return(0,x.jsx)(c.Presence,{present:r||a.open,children:a.modal?(0,x.jsx)(O,{...n,ref:t}):(0,x.jsx)(L,{...n,ref:t})})});S.displayName=_;var O=t.forwardRef((e,n)=>{let a=w(_,e.__scopeDialog),i=t.useRef(null),l=(0,r.useComposedRefs)(n,a.contentRef,i);return t.useEffect(()=>{let e=i.current;if(e)return(0,g.hideOthers)(e)},[]),(0,x.jsx)(F,{...e,ref:l,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),a.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,o=0===t.button&&!0===t.ctrlKey;(2===t.button||o)&&e.preventDefault()}),onFocusOutside:(0,o.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),L=t.forwardRef((e,o)=>{let r=w(_,e.__scopeDialog),n=t.useRef(!1),a=t.useRef(!1);return(0,x.jsx)(F,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||r.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let o=t.target;r.triggerRef.current?.contains(o)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),F=t.forwardRef((e,o)=>{let{__scopeDialog:n,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:d,...c}=e,u=w(_,n),f=t.useRef(null),g=(0,r.useComposedRefs)(o,f);return(0,p.useFocusGuards)(),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:i,onUnmountAutoFocus:d,children:(0,x.jsx)(l.DismissableLayer,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":U(u.open),...c,ref:g,onDismiss:()=>u.onOpenChange(!1)})}),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(q,{titleId:u.titleId}),(0,x.jsx)(G,{contentRef:f,descriptionId:u.descriptionId})]})]})}),A="DialogTitle",H=t.forwardRef((e,t)=>{let{__scopeDialog:o,...r}=e,n=w(A,o);return(0,x.jsx)(u.Primitive.h2,{id:n.titleId,...r,ref:t})});H.displayName=A;var z="DialogDescription",B=t.forwardRef((e,t)=>{let{__scopeDialog:o,...r}=e,n=w(z,o);return(0,x.jsx)(u.Primitive.p,{id:n.descriptionId,...r,ref:t})});B.displayName=z;var $="DialogClose",X=t.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=w($,r);return(0,x.jsx)(u.Primitive.button,{type:"button",...n,ref:t,onClick:(0,o.composeEventHandlers)(e.onClick,()=>a.onOpenChange(!1))})});function U(e){return e?"open":"closed"}X.displayName=$;var V="DialogTitleWarning",[K,W]=(0,n.createContext)(V,{contentName:_,titleName:A,docsSlug:"dialog"}),q=({titleId:e})=>{let o=W(V),r=`\`${o.contentName}\` requires a \`${o.titleName}\` for the component to be accessible for screen reader users.
2
+
3
+ If you want to hide the \`${o.titleName}\`, you can wrap it with our VisuallyHidden component.
4
+
5
+ For more information, see https://radix-ui.com/primitives/docs/components/${o.docsSlug}`;return t.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},G=({contentRef:e,descriptionId:o})=>{let r=W("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r.contentName}}.`;return t.useEffect(()=>{let t=e.current?.getAttribute("aria-describedby");o&&t&&(document.getElementById(o)||console.warn(n))},[n,e,o]),null};e.s(["Close",()=>X,"Content",()=>S,"Description",()=>B,"Dialog",()=>j,"DialogClose",()=>X,"DialogContent",()=>S,"DialogDescription",()=>B,"DialogOverlay",()=>P,"DialogPortal",()=>R,"DialogTitle",()=>H,"DialogTrigger",()=>D,"Overlay",()=>P,"Portal",()=>R,"Root",()=>j,"Title",()=>H,"Trigger",()=>D,"WarningProvider",()=>K,"createDialogScope",()=>b])},90033,e=>{"use strict";var t=e.i(567);e.s(["Dialog",0,t])},2828,e=>{"use strict";var t=e.i(20314),o=e.i(79054),r=e.i(91967),n=e.i(5978),a=e.i(22528),i=e.i(53532),l=e.i(13123),s=e.i(52740),d=e.i(39979),c=e.i(85995),u=e.i(87620),p=e.i(86874),f=e.i(36589),g=e.i(1693),[m,x]=(0,a.createContextScope)("Tooltip",[s.createPopperScope]),h=(0,s.createPopperScope)(),v="TooltipProvider",b="tooltip.open",[y,w]=m(v),j=e=>{let{__scopeTooltip:r,delayDuration:n=700,skipDelayDuration:a=300,disableHoverableContent:i=!1,children:l}=e,s=o.useRef(!0),d=o.useRef(!1),c=o.useRef(0);return o.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(y,{scope:r,isOpenDelayedRef:s,delayDuration:n,onOpen:o.useCallback(()=>{window.clearTimeout(c.current),s.current=!1},[]),onClose:o.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>s.current=!0,a)},[a]),isPointerInTransitRef:d,onPointerInTransitChange:o.useCallback(e=>{d.current=e},[]),disableHoverableContent:i,children:l})};j.displayName=v;var C="Tooltip",[D,k]=m(C),T=e=>{let{__scopeTooltip:r,children:n,open:a,defaultOpen:i,onOpenChange:d,disableHoverableContent:c,delayDuration:u}=e,p=w(C,e.__scopeTooltip),g=h(r),[m,x]=o.useState(null),v=(0,l.useId)(),y=o.useRef(0),j=c??p.disableHoverableContent,k=u??p.delayDuration,T=o.useRef(!1),[N,R]=(0,f.useControllableState)({prop:a,defaultProp:i??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(b))):p.onClose(),d?.(e)},caller:C}),E=o.useMemo(()=>N?T.current?"delayed-open":"instant-open":"closed",[N]),P=o.useCallback(()=>{window.clearTimeout(y.current),y.current=0,T.current=!1,R(!0)},[R]),I=o.useCallback(()=>{window.clearTimeout(y.current),y.current=0,R(!1)},[R]),M=o.useCallback(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{T.current=!0,R(!0),y.current=0},k)},[k,R]);return o.useEffect(()=>()=>{y.current&&(window.clearTimeout(y.current),y.current=0)},[]),(0,t.jsx)(s.Root,{...g,children:(0,t.jsx)(D,{scope:r,contentId:v,open:N,stateAttribute:E,trigger:m,onTriggerChange:x,onTriggerEnter:o.useCallback(()=>{p.isOpenDelayedRef.current?M():P()},[p.isOpenDelayedRef,M,P]),onTriggerLeave:o.useCallback(()=>{j?I():(window.clearTimeout(y.current),y.current=0)},[I,j]),onOpen:P,onClose:I,disableHoverableContent:j,children:n})})};T.displayName=C;var N="TooltipTrigger",R=o.forwardRef((e,a)=>{let{__scopeTooltip:i,...l}=e,d=k(N,i),c=w(N,i),p=h(i),f=o.useRef(null),g=(0,n.useComposedRefs)(a,f,d.onTriggerChange),m=o.useRef(!1),x=o.useRef(!1),v=o.useCallback(()=>m.current=!1,[]);return o.useEffect(()=>()=>document.removeEventListener("pointerup",v),[v]),(0,t.jsx)(s.Anchor,{asChild:!0,...p,children:(0,t.jsx)(u.Primitive.button,{"aria-describedby":d.open?d.contentId:void 0,"data-state":d.stateAttribute,...l,ref:g,onPointerMove:(0,r.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(x.current||c.isPointerInTransitRef.current||(d.onTriggerEnter(),x.current=!0))}),onPointerLeave:(0,r.composeEventHandlers)(e.onPointerLeave,()=>{d.onTriggerLeave(),x.current=!1}),onPointerDown:(0,r.composeEventHandlers)(e.onPointerDown,()=>{d.open&&d.onClose(),m.current=!0,document.addEventListener("pointerup",v,{once:!0})}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{m.current||d.onOpen()}),onBlur:(0,r.composeEventHandlers)(e.onBlur,d.onClose),onClick:(0,r.composeEventHandlers)(e.onClick,d.onClose)})})});R.displayName=N;var E="TooltipPortal",[P,I]=m(E,{forceMount:void 0}),M=e=>{let{__scopeTooltip:o,forceMount:r,children:n,container:a}=e,i=k(E,o);return(0,t.jsx)(P,{scope:o,forceMount:r,children:(0,t.jsx)(c.Presence,{present:r||i.open,children:(0,t.jsx)(d.Portal,{asChild:!0,container:a,children:n})})})};M.displayName=E;var _="TooltipContent",S=o.forwardRef((e,o)=>{let r=I(_,e.__scopeTooltip),{forceMount:n=r.forceMount,side:a="top",...i}=e,l=k(_,e.__scopeTooltip);return(0,t.jsx)(c.Presence,{present:n||l.open,children:l.disableHoverableContent?(0,t.jsx)(H,{side:a,...i,ref:o}):(0,t.jsx)(O,{side:a,...i,ref:o})})}),O=o.forwardRef((e,r)=>{let a=k(_,e.__scopeTooltip),i=w(_,e.__scopeTooltip),l=o.useRef(null),s=(0,n.useComposedRefs)(r,l),[d,c]=o.useState(null),{trigger:u,onClose:p}=a,f=l.current,{onPointerInTransitChange:g}=i,m=o.useCallback(()=>{c(null),g(!1)},[g]),x=o.useCallback((e,t)=>{let o,r=e.currentTarget,n={x:e.clientX,y:e.clientY},a=function(e,t){let o=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),n=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(o,r,n,a)){case a:return"left";case n:return"right";case o:return"top";case r:return"bottom";default:throw Error("unreachable")}}(n,r.getBoundingClientRect());c(((o=[...function(e,t,o=5){let r=[];switch(t){case"top":r.push({x:e.x-o,y:e.y+o},{x:e.x+o,y:e.y+o});break;case"bottom":r.push({x:e.x-o,y:e.y-o},{x:e.x+o,y:e.y-o});break;case"left":r.push({x:e.x+o,y:e.y-o},{x:e.x+o,y:e.y+o});break;case"right":r.push({x:e.x-o,y:e.y-o},{x:e.x-o,y:e.y+o})}return r}(n,a),...function(e){let{top:t,right:o,bottom:r,left:n}=e;return[{x:n,y:t},{x:o,y:t},{x:o,y:r},{x:n,y:r}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let o=0;o<e.length;o++){let r=e[o];for(;t.length>=2;){let e=t[t.length-1],o=t[t.length-2];if((e.x-o.x)*(r.y-o.y)>=(e.y-o.y)*(r.x-o.x))t.pop();else break}t.push(r)}t.pop();let o=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;o.length>=2;){let e=o[o.length-1],t=o[o.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))o.pop();else break}o.push(r)}return(o.pop(),1===t.length&&1===o.length&&t[0].x===o[0].x&&t[0].y===o[0].y)?t:t.concat(o)}(o))),g(!0)},[g]);return o.useEffect(()=>()=>m(),[m]),o.useEffect(()=>{if(u&&f){let e=e=>x(e,f),t=e=>x(e,u);return u.addEventListener("pointerleave",e),f.addEventListener("pointerleave",t),()=>{u.removeEventListener("pointerleave",e),f.removeEventListener("pointerleave",t)}}},[u,f,x,m]),o.useEffect(()=>{if(d){let e=e=>{let t=e.target,o={x:e.clientX,y:e.clientY},r=u?.contains(t)||f?.contains(t),n=!function(e,t){let{x:o,y:r}=e,n=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let i=t[e],l=t[a],s=i.x,d=i.y,c=l.x,u=l.y;d>r!=u>r&&o<(c-s)*(r-d)/(u-d)+s&&(n=!n)}return n}(o,d);r?m():n&&(m(),p())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[u,f,d,p,m]),(0,t.jsx)(H,{...e,ref:s})}),[L,F]=m(C,{isInside:!1}),A=(0,p.createSlottable)("TooltipContent"),H=o.forwardRef((e,r)=>{let{__scopeTooltip:n,children:a,"aria-label":l,onEscapeKeyDown:d,onPointerDownOutside:c,...u}=e,p=k(_,n),f=h(n),{onClose:m}=p;return o.useEffect(()=>(document.addEventListener(b,m),()=>document.removeEventListener(b,m)),[m]),o.useEffect(()=>{if(p.trigger){let e=e=>{let t=e.target;t?.contains(p.trigger)&&m()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[p.trigger,m]),(0,t.jsx)(i.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:m,children:(0,t.jsxs)(s.Content,{"data-state":p.stateAttribute,...f,...u,ref:r,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(A,{children:a}),(0,t.jsx)(L,{scope:n,isInside:!0,children:(0,t.jsx)(g.Root,{id:p.contentId,role:"tooltip",children:l||a})})]})})});S.displayName=_;var z="TooltipArrow",B=o.forwardRef((e,o)=>{let{__scopeTooltip:r,...n}=e,a=h(r);return F(z,r).isInside?null:(0,t.jsx)(s.Arrow,{...a,...n,ref:o})});B.displayName=z,e.s(["Arrow",()=>B,"Content",()=>S,"Portal",()=>M,"Provider",()=>j,"Root",()=>T,"Tooltip",()=>T,"TooltipArrow",()=>B,"TooltipContent",()=>S,"TooltipPortal",()=>M,"TooltipProvider",()=>j,"TooltipTrigger",()=>R,"Trigger",()=>R,"createTooltipScope",()=>x],30643);var $=e.i(30643),$=$,X=e.i(31777);function U({delayDuration:e=400,...o}){return(0,t.jsx)($.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...o})}function V({...e}){return(0,t.jsx)($.Root,{"data-slot":"tooltip",...e})}function K({...e}){return(0,t.jsx)($.Trigger,{"data-slot":"tooltip-trigger",...e})}function W({className:e,sideOffset:o=0,children:r,...n}){return(0,t.jsx)($.Portal,{children:(0,t.jsxs)($.Content,{"data-slot":"tooltip-content",sideOffset:o,className:(0,X.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...n,children:[r,(0,t.jsx)($.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}e.s(["Tooltip",()=>V,"TooltipContent",()=>W,"TooltipProvider",()=>U,"TooltipTrigger",()=>K],2828)},51251,14748,e=>{"use strict";let t=(0,e.i(3645).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["default",()=>t],14748),e.s(["CircleAlert",()=>t],51251)},83428,15506,e=>{"use strict";let t=(0,e.i(3645).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],15506),e.s(["Loader2",()=>t],83428)},2287,60253,e=>{"use strict";var t=e.i(20314),o=e.i(79054),r=e.i(90033),n=e.i(90537);e.s(["X",()=>n.default],60253);var n=n,a=e.i(31777);let i=r.Dialog.Root,l=r.Dialog.Trigger,s=r.Dialog.Portal,d=r.Dialog.Close,c=o.forwardRef(({className:e,onClick:o,...n},i)=>(0,t.jsx)(r.Dialog.Overlay,{ref:i,className:(0,a.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",e),onClick:e=>{e.stopPropagation(),o?.(e)},...n}));c.displayName=r.Dialog.Overlay.displayName;let u=o.forwardRef(({className:e,children:o,...i},l)=>(0,t.jsxs)(s,{children:[(0,t.jsx)(c,{}),(0,t.jsxs)(r.Dialog.Content,{ref:l,className:(0,a.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",e),...i,children:[o,(0,t.jsxs)(r.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute end-4 top-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(n.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));u.displayName=r.Dialog.Content.displayName;let p=({className:e,...o})=>(0,t.jsx)("div",{className:(0,a.cn)("flex flex-col space-y-1.5 text-center sm:text-start",e),...o});p.displayName="DialogHeader";let f=({className:e,...o})=>(0,t.jsx)("div",{className:(0,a.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...o});f.displayName="DialogFooter";let g=o.forwardRef(({className:e,...o},n)=>(0,t.jsx)(r.Dialog.Title,{ref:n,className:(0,a.cn)("text-lg leading-none font-semibold tracking-tight",e),...o}));g.displayName=r.Dialog.Title.displayName;let m=o.forwardRef(({className:e,...o},n)=>(0,t.jsx)(r.Dialog.Description,{ref:n,className:(0,a.cn)("text-muted-foreground text-sm",e),...o}));m.displayName=r.Dialog.Description.displayName,e.s(["Dialog",()=>i,"DialogClose",()=>d,"DialogContent",()=>u,"DialogDescription",()=>m,"DialogFooter",()=>f,"DialogHeader",()=>p,"DialogTitle",()=>g,"DialogTrigger",()=>l],2287)},8361,73709,18354,e=>{"use strict";var t=e.i(44172),o=e.i(79054);let r="shep-sound-enabled",n="shep:sound-toggle";function a(){let[e,t]=(0,o.useState)(!0);(0,o.useEffect)(()=>{"false"===localStorage.getItem(r)&&t(!1);let e=e=>{t(e.detail)};return window.addEventListener(n,e),()=>window.removeEventListener(n,e)},[]);let a=(0,o.useCallback)(()=>{let o=!e;localStorage.setItem(r,String(o)),t(o),window.dispatchEvent(new CustomEvent(n,{detail:o}))},[e]);return{enabled:e,toggle:a}}e.s(["useSoundEnabled",()=>a],73709);let i=new Map,l={navigate:{sound:"tap_01",volume:.2},"menu-item":{sound:"tap_01",volume:.2},select:{sound:"select",volume:.3},"toggle-on":{sound:"toggle_on",volume:.3},"toggle-off":{sound:"toggle_off",volume:.3},click:{sound:"tap_01",volume:.3},cancel:{sound:"transition_down",volume:.3},expand:{sound:"tap_01",volume:.2},collapse:{sound:"tap_01",volume:.2},"menu-open":{sound:"select",volume:.3},copy:{sound:"select",volume:.3},"drawer-open":{sound:"transition_up",volume:.4},"drawer-close":{sound:"transition_down",volume:.4},submit:{sound:"button",volume:.4},approve:{sound:"celebration",volume:.5},reject:{sound:"caution",volume:.5},create:{sound:"transition_up",volume:.5},delete:{sound:"transition_down",volume:.5},"notification-success":{sound:"celebration",volume:.5},"notification-error":{sound:"caution",volume:.5},"notification-warning":{sound:"notification",volume:.5},"notification-info":{sound:"button",volume:.5}};function s(e){let{sound:t,volume:r}=l[e];return function(e,t={}){let{volume:r=1,loop:n=!1}=t,{enabled:l}=a(),s=(0,o.useRef)(null),d=(0,o.useRef)(!1);return(0,o.useEffect)(()=>{let t,o=((t=i.get(e))||((t=new Audio(`/sounds/${e}.wav`)).preload="auto",i.set(e,t)),t);return o.loop=n,o.volume=Math.max(0,Math.min(1,r)),o.addEventListener("ended",()=>{d.current=!1}),s.current=o,()=>{o.pause(),s.current=null,d.current=!1}},[e,n,r]),{play:(0,o.useCallback)(()=>{if(!l)return;let e=s.current;e&&(e.currentTime=0,e.play()?.catch(e=>{}),d.current=!0)},[l,e]),stop:(0,o.useCallback)(()=>{let e=s.current;e&&(e.pause(),e.currentTime=0,d.current=!1)},[]),isPlaying:d.current}}(t,{volume:r})}e.s(["useSoundAction",()=>s],8361);let d=!!t.default.env.NEXT_PUBLIC_DEBUG,c=()=>void 0;function u(e){return{info:d?(...t)=>console.info(e,...t):c,debug:d?(...t)=>console.debug(e,...t):c,warn:(...t)=>console.warn(e,...t),error:(...t)=>console.error(e,...t)}}e.s(["createLogger",()=>u],18354)},75921,e=>{"use strict";var t=e.i(20314),o=e.i(79054);let r=(0,o.createContext)({skills:!1,envDeploy:!0,debug:!1,githubImport:!1,adoptBranch:!1,gitRebaseSync:!1,reactFileManager:!1});function n({children:e,flags:o}){return(0,t.jsx)(r.Provider,{value:o,children:e})}function a(){return(0,o.useContext)(r)}e.s(["FeatureFlagsProvider",()=>n,"useFeatureFlags",()=>a])},31406,(e,t,o)=>{t.exports=e.r(67013)},95230,e=>{"use strict";let t=(0,e.i(3645).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["default",()=>t])}]);
@@ -0,0 +1 @@
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 p=e.i(53360);let f=(0,o.default)("zap-off",[["path",{d:"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317",key:"193nxd"}],["path",{d:"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773",key:"27a7lr"}],["path",{d:"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",key:"1e0qe9"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var m=e.i(81975),g=e.i(12103),b=e.i(39200),x=e.i(87620),v=e.i(85995),y=e.i(22528),w=e.i(5978),C=e.i(29297),j=e.i(66033),S=e.i(5192),k=e.i(27069),N=e.i(91967),E="ScrollArea",[T,M]=(0,y.createContextScope)(E),[P,A]=T(E),R=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),[p,f]=r.useState(null),[m,g]=r.useState(null),[b,v]=r.useState(null),[y,C]=r.useState(0),[S,k]=r.useState(0),[N,E]=r.useState(!1),[T,M]=r.useState(!1),A=(0,w.useComposedRefs)(a,e=>u(e)),R=(0,j.useDirection)(s);return(0,t.jsx)(P,{scope:n,type:i,dir:R,scrollHideDelay:o,scrollArea:c,viewport:d,onViewportChange:h,content:p,onContentChange:f,scrollbarX:m,onScrollbarXChange:g,scrollbarXEnabled:N,onScrollbarXEnabledChange:E,scrollbarY:b,onScrollbarYChange:v,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:C,onCornerHeightChange:k,children:(0,t.jsx)(x.Primitive.div,{dir:R,...l,ref:A,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});R.displayName=E;var L="ScrollAreaViewport",D=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,children:i,nonce:s,...o}=e,l=A(L,n),c=r.useRef(null),u=(0,w.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)(x.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})})]})});D.displayName=L;var O="ScrollAreaScrollbar",q=r.forwardRef((e,a)=>{let{forceMount:n,...i}=e,s=A(O,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)(z,{...i,ref:a,forceMount:n}):"scroll"===s.type?(0,t.jsx)(I,{...i,ref:a,forceMount:n}):"auto"===s.type?(0,t.jsx)(H,{...i,ref:a,forceMount:n}):"always"===s.type?(0,t.jsx)(_,{...i,ref:a}):null});q.displayName=O;var z=r.forwardRef((e,a)=>{let{forceMount:n,...i}=e,s=A(O,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)(v.Presence,{present:n||o,children:(0,t.jsx)(H,{"data-state":o?"visible":"hidden",...i,ref:a})})}),I=r.forwardRef((e,a)=>{var n;let{forceMount:i,...s}=e,o=A(O,e.__scopeScrollArea),l="horizontal"===e.orientation,c=en(()=>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)(v.Presence,{present:i||"hidden"!==u,children:(0,t.jsx)(_,{"data-state":"hidden"===u?"hidden":"visible",...s,ref:a,onPointerEnter:(0,N.composeEventHandlers)(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:(0,N.composeEventHandlers)(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),H=r.forwardRef((e,a)=>{let n=A(O,e.__scopeScrollArea),{forceMount:i,...s}=e,[o,l]=r.useState(!1),c="horizontal"===e.orientation,u=en(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;l(c?e:t)}},10);return ei(n.viewport,u),ei(n.content,u),(0,t.jsx)(v.Presence,{present:i||o,children:(0,t.jsx)(_,{"data-state":o?"visible":"hidden",...s,ref:a})})}),_=r.forwardRef((e,a)=>{let{orientation:n="vertical",...i}=e,s=A(O,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=J(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 p(e,t){return function(e,t,r,a="ltr"){let n=ee(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 er([s,o],"ltr"===a?[0,l]:[-1*l,0])(e)}(e,l.current,c,t)}return"horizontal"===n?(0,t.jsx)(Q,{...h,ref:a,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=et(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=p(e,s.dir))}}):"vertical"===n?(0,t.jsx)(F,{...h,ref:a,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=et(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=p(e))}}):null}),Q=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:i,...s}=e,o=A(O,e.__scopeScrollArea),[l,c]=r.useState(),u=r.useRef(null),d=(0,w.useComposedRefs)(a,u,o.onScrollbarXChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(U,{"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":ee(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:Z(l.paddingLeft),paddingEnd:Z(l.paddingRight)}})}})}),F=r.forwardRef((e,a)=>{let{sizes:n,onSizesChange:i,...s}=e,o=A(O,e.__scopeScrollArea),[l,c]=r.useState(),u=r.useRef(null),d=(0,w.useComposedRefs)(a,u,o.onScrollbarYChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(U,{"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":ee(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:Z(l.paddingTop),paddingEnd:Z(l.paddingBottom)}})}})}),[B,K]=T(O),U=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,sizes:i,hasThumb:s,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:c,onThumbPositionChange:u,onDragScroll:d,onWheelScroll:h,onResize:p,...f}=e,m=A(O,n),[g,b]=r.useState(null),v=(0,w.useComposedRefs)(a,e=>b(e)),y=r.useRef(null),j=r.useRef(""),S=m.viewport,k=i.content-i.viewport,E=(0,C.useCallbackRef)(h),T=(0,C.useCallbackRef)(u),M=en(p,10);function P(e){y.current&&d({x:e.clientX-y.current.left,y:e.clientY-y.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&E(e,k)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[S,g,k,E]),r.useEffect(T,[i,T]),ei(g,M),ei(m.content,M),(0,t.jsx)(B,{scope:n,scrollbar:g,hasThumb:s,onThumbChange:(0,C.useCallbackRef)(o),onThumbPointerUp:(0,C.useCallbackRef)(l),onThumbPositionChange:T,onThumbPointerDown:(0,C.useCallbackRef)(c),children:(0,t.jsx)(x.Primitive.div,{...f,ref:v,style:{position:"absolute",...f.style},onPointerDown:(0,N.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),y.current=g.getBoundingClientRect(),j.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),P(e))}),onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,P),onPointerUp:(0,N.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=""),y.current=null})})})}),W="ScrollAreaThumb",X=r.forwardRef((e,r)=>{let{forceMount:a,...n}=e,i=K(W,e.__scopeScrollArea);return(0,t.jsx)(v.Presence,{present:a||i.hasThumb,children:(0,t.jsx)(Y,{ref:r,...n})})}),Y=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,style:i,...s}=e,o=A(W,n),l=K(W,n),{onThumbPositionChange:c}=l,u=(0,w.useComposedRefs)(a,e=>l.onThumbChange(e)),d=r.useRef(void 0),h=en(()=>{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=ea(e,c),c())};return c(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[o.viewport,h,c]),(0,t.jsx)(x.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,N.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,N.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});X.displayName=W;var $="ScrollAreaCorner",G=r.forwardRef((e,r)=>{let a=A($,e.__scopeScrollArea),n=!!(a.scrollbarX&&a.scrollbarY);return"scroll"!==a.type&&n?(0,t.jsx)(V,{...e,ref:r}):null});G.displayName=$;var V=r.forwardRef((e,a)=>{let{__scopeScrollArea:n,...i}=e,s=A($,n),[o,l]=r.useState(0),[c,u]=r.useState(0),d=!!(o&&c);return ei(s.scrollbarX,()=>{let e=s.scrollbarX?.offsetHeight||0;s.onCornerHeightChange(e),u(e)}),ei(s.scrollbarY,()=>{let e=s.scrollbarY?.offsetWidth||0;s.onCornerWidthChange(e),l(e)}),d?(0,t.jsx)(x.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 Z(e){return e?parseInt(e,10):0}function J(e,t){let r=e/t;return isNaN(r)?0:r}function ee(e){let t=J(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function et(e,t,r="ltr"){let a=ee(t),n=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,i=t.scrollbar.size-n,s=t.content-t.viewport,o=(0,k.clamp)(e,"ltr"===r?[0,s]:[-1*s,0]);return er([0,s],[0,i-a])(o)}function er(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 ea=(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 en(e,t){let a=(0,C.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 ei(e,t){let r=(0,C.useCallbackRef)(t);(0,S.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",()=>G,"Root",()=>R,"ScrollArea",()=>R,"ScrollAreaCorner",()=>G,"ScrollAreaScrollbar",()=>q,"ScrollAreaThumb",()=>X,"ScrollAreaViewport",()=>D,"Scrollbar",()=>q,"Thumb",()=>X,"Viewport",()=>D,"createScrollAreaScope",()=>M],87516);var es=e.i(87516),es=es,eo=e.i(31777);function el({className:e,children:r,...a}){return(0,t.jsxs)(es.Root,{"data-slot":"scroll-area",className:(0,eo.cn)("relative",e),...a,children:[(0,t.jsx)(es.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)(ec,{}),(0,t.jsx)(es.Corner,{})]})}function ec({className:e,orientation:r="vertical",...a}){return(0,t.jsx)(es.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:r,className:(0,eo.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)(es.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eu=e.i(24035),ed=e.i(8361);function eh({icon:e,label:r,href:a,active:n=!1}){let i=(0,ed.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)(eu.default,{href:a,onClick:()=>i.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:r})]})})})}var ep=e.i(71379),ep=ep,ef=e.i(35364);function em({className:e}){let{toggleSidebar:r,open:a}=(0,s.useSidebar)(),n=(0,ed.useSoundAction)("expand"),i=(0,ed.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,eo.cn)("flex",e),children:(0,t.jsx)(ef.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)(ep.default,{className:"size-4"})})})}function eg({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,eo.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 eb=e.i(2828);function ex({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:p}=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:f,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}`,b="upgrading"===f,x="restarting"===f,v="upgraded"===f;return(0,t.jsx)(eb.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsx)(eb.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,!p||v||x?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)(eb.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)(ev,{label:u("versionBadge.version"),value:g}),s&&a?(0,t.jsx)(ev,{label:u("versionBadge.branch"),value:a}):null,s&&d?(0,t.jsx)(ev,{label:u("versionBadge.commit"),value:d,mono:!0}):null,s&&c?(0,t.jsx)(ev,{label:u("versionBadge.path"),value:c,mono:!0}):null,h?(0,t.jsx)(ev,{label:"Latest",value:`v${h}`,highlight:p}):null]}),x?(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"===f?(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"})}):p?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("button",{type:"button",onClick:m,disabled:b||x,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:b?"Upgrading...":x?"Restarting...":`Upgrade to v${h}`})}):null]})]})})}function ev({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 ey({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 ew=e.i(51251),eC=e.i(83428),ej=e.i(34119),eS=e.i(94819),ek=e.i(54277),eN=e.i(55016);let eE={"action-needed":{icon:ew.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",labelKey:"sidebar.statusActionNeeded"},"in-progress":{icon:eC.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",labelKey:"sidebar.statusInProgress"},pending:{icon:eN.Clock,iconClass:"text-slate-400",bgClass:"bg-slate-400/10",labelKey:"sidebar.statusPending"},blocked:{icon:eS.Ban,iconClass:"text-gray-400",bgClass:"bg-gray-400/10",labelKey:"sidebar.statusBlocked"},error:{icon:ek.CircleX,iconClass:"text-red-500",bgClass:"bg-red-500/10",labelKey:"sidebar.statusError"},done:{icon:ej.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",labelKey:"sidebar.statusDone"}},eT=["action-needed","error","blocked","in-progress","pending","done"];var eM=e.i(86782),eP=e.i(29847);function eA({name:e,status:r,startedAt:a,duration:n,agentType:i,modelId:o,onClick:l}){let{icon:c,iconClass:u}=eE[r],d=i?(0,eM.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)(ey,{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)(eb.TooltipProvider,{children:(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsx)(eb.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)(eb.TooltipContent,{side:"right",children:[(0,t.jsx)("span",{className:"font-medium",children:eM.agentTypeLabels[i]??i}),o?(0,t.jsxs)("span",{className:"ms-1 opacity-70",children:["· ",(0,eP.getModelMeta)(o).displayName||o]}):null]})]})}):null]})})}var eR=e.i(73709);let eL="shep-animations-enabled",eD="shep:animations-toggle",eO="no-animations",eq="shep-theme";function ez({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 eI=e.i(99105),eH=e.i(81542);function e_({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,eo.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)(eI.ChevronDown,{className:(0,eo.cn)("text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform duration-200",!s&&"-rotate-90")}),(0,t.jsx)(eH.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,eo.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 eF={version:"unknown",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform",branch:"",commitHash:"",instancePath:"",isDev:!1};function eB({features:e,featureFlags:i,onFeatureClick:o}){let{t:x,i18n:v}=(0,n.useTranslation)("web"),y=(0,a.usePathname)(),{state:w}=(0,s.useSidebar)(),C="collapsed"===w,{mounted:j,visible:S}=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}}(C,0),k=function(){let[e,t]=(0,r.useState)(eF);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:N,toggle:E}=(0,eR.useSoundEnabled)(),{enabled:T,toggle:M}=function(){let[e,t]=(0,r.useState)(!0);(0,r.useEffect)(()=>{"false"===localStorage.getItem(eL)&&(t(!1),document.body.classList.add(eO));let e=e=>{let r=e.detail;t(r),document.body.classList.toggle(eO,!r)};return window.addEventListener(eD,e),()=>window.removeEventListener(eD,e)},[]);let a=(0,r.useCallback)(()=>{let r=!e;localStorage.setItem(eL,String(r)),t(r),document.body.classList.toggle(eO,!r),window.dispatchEvent(new CustomEvent(eD,{detail:r}))},[e]);return{enabled:e,toggle:a}}(),{resolvedTheme:P,theme:A,setTheme:R}=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(eq,e),o(s(e))},[s,o]);return(0,r.useEffect)(()=>{let e=localStorage.getItem(eq)??"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}}(),L=(0,ed.useSoundAction)("toggle-on"),D=(0,ed.useSoundAction)("toggle-off"),O=(0,ed.useSoundAction)("navigate"),q=(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:eT.map(e=>({statusKey:e,label:x(eE[e].labelKey),items:r.filter(t=>t.status===e)})).filter(e=>e.items.length>0)}))},[e,x]);return(0,t.jsxs)(s.Sidebar,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",side:"rtl"===v.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:[j?(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",S?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!S,children:[(0,t.jsx)(eg,{className:"shrink-0",size:20,variant:k.isDev?"dev":"default"}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"}),(0,t.jsx)(ex,{version:k.version,branch:k.branch||void 0,commitHash:k.commitHash||void 0,isDev:k.isDev,packageName:k.packageName,description:k.description,instancePath:k.instancePath||void 0})]}):null,(0,t.jsx)(em,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(eh,{icon:l,label:x("navigation.controlCenter"),href:"/",active:"/"===y}),(0,t.jsx)(eh,{icon:m.Wrench,label:x("navigation.tools"),href:"/tools",active:"/tools"===y}),i.skills?(0,t.jsx)(eh,{icon:g.Puzzle,label:x("navigation.skills"),href:"/skills",active:"/skills"===y}):null,(0,t.jsx)(eh,{icon:b.Settings,label:x("navigation.settings"),href:"/settings",active:"/settings"===y})]})}),(0,t.jsx)(s.SidebarContent,{children:j?(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",S?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eQ,{label:x("sidebar.features")}),(0,t.jsx)(el,{className:"min-h-0 flex-1",children:q.map(({repoPath:e,repoName:r,featureCount:a,statusGroups:n})=>(0,t.jsx)(e_,{repoName:r,featureCount:a,children:n.map(({statusKey:e,label:r,items:a})=>(0,t.jsx)(ez,{label:r,count:a.length,children:a.map(e=>(0,t.jsx)(eA,{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)(eb.TooltipProvider,{children:[(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsx)(eb.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(s.SidebarMenuButton,{className:"w-auto flex-none",onClick:e=>{let t="system"===A?"dark"===P?"light":"dark":"dark"===A?"light":"dark";"dark"!==("system"===A?P:A)?L.play():D.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(()=>{R(t)})):R(t)},"aria-label":"dark"===P?x("sidebar.switchToLight"):x("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)(eb.TooltipContent,{side:"top",children:"dark"===P?x("sidebar.switchToLight"):x("sidebar.switchToDark")})]}),!C&&(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsx)(eb.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(s.SidebarMenuButton,{className:"w-auto flex-none",onClick:()=>{O.play(),E()},"aria-label":N?x("sidebar.muteSounds"):x("sidebar.unmuteSounds"),children:N?(0,t.jsx)(d,{className:"h-4 w-4"}):(0,t.jsx)(h,{className:"h-4 w-4"})})}),(0,t.jsx)(eb.TooltipContent,{side:"top",children:N?x("sidebar.muteSounds"):x("sidebar.unmuteSounds")})]}),!C&&(0,t.jsxs)(eb.Tooltip,{children:[(0,t.jsx)(eb.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(s.SidebarMenuButton,{className:"w-auto flex-none",onClick:()=>{O.play(),M()},"aria-label":T?"Disable animations":"Enable animations",children:T?(0,t.jsx)(p.Zap,{className:"h-4 w-4"}):(0,t.jsx)(f,{className:"h-4 w-4"})})}),(0,t.jsx)(eb.TooltipContent,{side:"top",children:T?"Disable animations":"Enable animations"})]})]})})})})}),(0,t.jsx)(s.SidebarRail,{})]})}e.i(13322);var eK=e.i(61201),eU=e.i(48109),eW=e.i(60253),eX=e.i(26370);let eY=(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 e$=e.i(87538);let eG=(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 eV=e.i(28112),eZ=e.i(57779),eJ=e.i(80554),e0=e.i(62639);let e1="shep-global-chat";function e2(){try{let e=localStorage.getItem(e1);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 e4(){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,eJ.useTurnStatus)("global"),{swapPosition:h}=(0,e0.useFabLayout)(),{state:p}=(0,s.useSidebar)(),[f,m]=(0,r.useState)(()=>e2().pos),[g,b]=(0,r.useState)(()=>e2().size),x=(0,r.useCallback)(e=>{m(t=>"function"==typeof e?e(t):e)},[]),v=(0,r.useCallback)(e=>{b(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?(x(S.current.pos),v(S.current.size)):S.current={pos:f,size:g},!e))},[a,f,g,x,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(e1,JSON.stringify({pos:e,size:t}))}catch{}})(f,g),300);return()=>clearTimeout(e)},[f,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=f?.x??r.left,n=f?.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;x(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)},[f,g,x,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=f?.y??r.top;C.current={startX:i,startY:s,startW:a,startH:n},f||x({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}),x(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,f,x,v,N]),M=(0,r.useCallback)(()=>{i(!1),u(!1)},[]),P=c?{}:f?{position:"fixed",left:f.x,top:f.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,eo.cn)(c?"bg-background fixed inset-0 z-[60] flex flex-col overflow-hidden dark:bg-neutral-900":(0,eo.cn)(!f&&(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,eo.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)(eY,{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)(eX.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)(eG,{className:"h-3.5 w-3.5"}):(0,t.jsx)(e$.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)(eW.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)(eV.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;f||x({x:r.left,y:r.top});let o=e=>{let t=window.innerHeight-(f?.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)(e3,{swapPosition:h,sidebarState:p,isMaximized:c,children:[(0,t.jsxs)(ef.Button,{size:"icon",onClick:j,className:(0,eo.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)(eU.MessageSquare,{className:(0,eo.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)(eW.X,{className:(0,eo.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)(eZ.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 e3({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,eo.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,eo.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 e5=e.i(78521),e6=e.i(2287),e7=e.i(68304),e8=e.i(98127),e9=e.i(41957);let te=/^(?: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 tt({onSubmit:e,loading:a=!1}){let[n,i]=(0,r.useState)(""),[s,o]=(0,r.useState)("");function l(){let t=n.trim();t?te.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)(e9.Label,{htmlFor:"github-url-input",children:"GitHub URL"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(e8.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)(ef.Button,{onClick:l,disabled:a||!n.trim(),size:"sm",children:a?(0,t.jsx)(eC.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 tr=(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 ta=e.i(32494),tn=e.i(66459),ti=e.i(79687),ts=e.i(81846),to=e.i(61238),tl=e.i(47373),tc=e.i(21023);let tu=(0,tc.createServerReference)("40f0b725d1e35dea54a99d59c98b20b58772e643eb",tc.callServer,void 0,tc.findSourceMapURL,"listGitHubRepositories"),td=(0,tc.createServerReference)("00c0a81081ef6e83e69c24e1b6331e57c42afaed5e",tc.callServer,void 0,tc.findSourceMapURL,"listGitHubOrganizations"),th="__personal__";function tp({onSelect:e,loading:a=!1,fetchRepos:n=tu,fetchOrgs:i=td}){let[s,o]=(0,r.useState)([]),[l,c]=(0,r.useState)([]),[u,d]=(0,r.useState)(!0),[h,p]=(0,r.useState)(""),[f,m]=(0,r.useState)(""),[g,b]=(0,r.useState)(th),x=(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),p("");try{let r={};e&&(r.search=e),t&&t!==th&&(r.owner=t);let a=await n(Object.keys(r).length>0?r:void 0);a.error?(p(a.error),o([])):o(a.repos??[])}catch{p("Failed to fetch repositories"),o([])}finally{d(!1)}},[n]);return((0,r.useEffect)(()=>{v(f||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)(ti.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)(tl.Select,{value:g,onValueChange:function(e){b(e),m("")},disabled:a,children:[(0,t.jsx)(tl.SelectTrigger,{"aria-label":"Select owner",children:(0,t.jsx)(tl.SelectValue,{placeholder:"Select owner"})}),(0,t.jsxs)(tl.SelectContent,{children:[(0,t.jsx)(tl.SelectItem,{value:th,children:"My repositories"}),l.map(e=>(0,t.jsx)(tl.SelectItem,{value:e.login,children:e.login},e.login))]})]}):null,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(tn.Search,{className:"text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2"}),(0,t.jsx)(e8.Input,{placeholder:"Search repositories...",value:f,onChange:e=>{var t;m(t=e.target.value),x.current&&clearTimeout(x.current),x.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)(to.Skeleton,{className:"h-4 w-48"}),(0,t.jsx)(to.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)(ts.Badge,{variant:r.isPrivate?"secondary":"outline",className:"shrink-0 text-xs",children:r.isPrivate?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tr,{className:"me-1 h-3 w-3"}),"Private"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ta.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)(eC.Loader2,{className:"mt-0.5 h-4 w-4 shrink-0 animate-spin"}):null]},r.nameWithOwner))})]})}let tf=(0,tc.createServerReference)("405f84c459d6ef270e9154f097ec9dcabd3e412a30",tc.callServer,void 0,tc.findSourceMapURL,"importGitHubRepository");function tm({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 tf({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)(e6.Dialog,{open:e,onOpenChange:a,children:(0,t.jsxs)(e6.DialogContent,{className:"overflow-hidden sm:max-w-lg",children:[(0,t.jsxs)(e6.DialogHeader,{children:[(0,t.jsx)(e6.DialogTitle,{children:"Import from GitHub"}),(0,t.jsx)(e6.DialogDescription,{children:"Clone a GitHub repository and add it to Shep."})]}),(0,t.jsxs)(e7.Tabs,{defaultValue:"url",className:"min-w-0",children:[(0,t.jsxs)(e7.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(e7.TabsTrigger,{value:"url",children:"URL"}),(0,t.jsx)(e7.TabsTrigger,{value:"browse",children:"Browse"})]}),(0,t.jsx)(e7.TabsContent,{value:"url",className:"mt-4",children:(0,t.jsx)(tt,{onSubmit:c,loading:i})}),(0,t.jsx)(e7.TabsContent,{value:"browse",className:"mt-4",children:(0,t.jsx)(tp,{onSelect:c,loading:i})})]}),o?(0,t.jsx)("p",{className:"text-destructive text-sm",role:"alert",children:o}):null]})})}var tg=e.i(39443),tb=e.i(30153),tx=e.i(5147),tv=e.i(60112),ty=e.i(17406);let tw={[ty.NotificationSeverity.Success]:"success",[ty.NotificationSeverity.Error]:"error",[ty.NotificationSeverity.Warning]:"warning",[ty.NotificationSeverity.Info]:"info"},tC={[ty.NotificationSeverity.Success]:"notification-success",[ty.NotificationSeverity.Error]:"notification-error",[ty.NotificationSeverity.Warning]:"notification-warning",[ty.NotificationSeverity.Info]:"notification-info"};var tj=e.i(75921);function tS({children:e,sidebarOpen:n}){let i=(0,a.useRouter)(),{guardedNavigate:o}=(0,tb.useDrawerCloseGuard)(),l=(0,tj.useFeatureFlags)();!function(){let e=(0,a.useRouter)(),{events:t}=(0,tg.useAgentEventsContext)(),n=(0,ed.useSoundAction)("notification-success"),i=(0,ed.useSoundAction)("notification-error"),s=(0,ed.useSoundAction)("notification-warning"),o=(0,ed.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!==ty.NotificationEventType.MergeReviewReady&&a.severity!==ty.NotificationSeverity.Error&&a.severity!==ty.NotificationSeverity.Warning&&a.severity!==ty.NotificationSeverity.Success)continue;!function(e,t){let r=tw[e.severity]??"info",a=e.eventType===ty.NotificationEventType.WaitingApproval||e.eventType===ty.NotificationEventType.MergeReviewReady;tv.toast[r](e.featureName,{description:e.message,...a&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(a,t=>e.push(t));let t=tC[a.severity];l[t]?.play()}},[t,l,e])}();let{features:c}=(0,tx.useSidebarFeaturesContext)(),u=(0,r.useCallback)(e=>{o(()=>i.push(`/feature/${e}`))},[i,o]),[d,h]=(0,r.useState)(!1),[p,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(!1),b=(0,r.useCallback)(async()=>{if(!d){if(l.reactFileManager)return void g(!0);h(!0);try{let e=await (0,e5.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=()=>{b()};return window.addEventListener("shep:pick-folder",e),()=>window.removeEventListener("shep:pick-folder",e)},[b]),(0,r.useEffect)(()=>{let e=()=>f(!0);return window.addEventListener("shep:open-github-import",e),()=>window.removeEventListener("shep:open-github-import",e)},[]);let x=(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)(eB,{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)(e4,{}),l.githubImport?(0,t.jsx)(tm,{open:p,onOpenChange:f,onImportComplete:v}):null]})}),(0,t.jsx)(eK.ReactFileManagerDialog,{open:m,onOpenChange:e=>{e||g(!1)},onSelect:x})]})}function tk({children:e}){return(0,t.jsx)(eJ.TurnStatusesProvider,{children:e})}function tN({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)(tg.AgentEventsProvider,{children:(0,t.jsx)(tb.DrawerCloseGuardProvider,{children:(0,t.jsx)(tx.SidebarFeaturesProvider,{children:(0,t.jsx)(tk,{children:(0,t.jsx)(tS,{sidebarOpen:r,children:e})})})})})})}e.s(["AppShell",()=>tN],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 p(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}:f)(n,t);l=await d(t,r,e)}else{let t=e??s.length;do{let e=0===c?o[0]??n.initialPageParam:f(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 f(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=p(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(r.noop).catch(r.noop)}ensureInfiniteQueryData(e){return e.behavior=p(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),b=e.i(79054);function x({children:e}){let[r]=(0,b.useState)(()=>new m({defaultOptions:{queries:{staleTime:1e3,refetchOnWindowFocus:!1}}}));return(0,t.jsx)(g.QueryClientProvider,{client:r,children:e})}e.s(["QueryProvider",()=>x],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),p=e.i(28191),f=e.i(71363),m=e.i(53493),g=e.i(22307),b=e.i(44225),x=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:p.default,web:f.default},ar:{common:m.default,web:g.default},he:{common:b.default,web:x.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 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59311,e=>{"use strict";let t=(0,e.i(3645).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],59311)},16868,e=>{"use strict";var t=e.i(43698);e.s(["PaperclipIcon",()=>t.default])},70471,e=>{"use strict";var t=e.i(16298);e.s(["FileText",()=>t.default])},42076,e=>{"use strict";async function t(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["pickFiles",()=>t])},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),i=e.i(22528),o=e.i(36589),n=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[p,u]=(0,i.createContextScope)(d),[h,m]=p(d),x=r.forwardRef((e,i)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:b,form:j,...v}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(i,e=>C(e)),N=r.useRef(!1),D=!y||j||!!y.closest("form"),[T,S]=(0,o.useControllableState)({prop:p,defaultProp:u??!1,onChange:b,caller:d});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":w(T),"data-disabled":x?"":void 0,disabled:x,value:f,...v,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),D&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),D&&(0,t.jsx)(g,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=d;var f="SwitchThumb",b=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,i=m(f,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:r})});b.displayName=f;var g=r.forwardRef(({__scopeSwitch:e,control:a,checked:i,bubbles:o=!0,...c},d)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,d),h=(0,n.usePrevious)(i),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:o});t.call(e,i),e.dispatchEvent(r)}},[h,i,o]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:u,style:{...c.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>b,"Thumb",()=>b,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,v=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>y],51911)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),i=e.i(21023);let o=(0,i.createServerReference)("40476c75b3bc8111c1d2e3c155f1c3e71efacfb23d",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(41001);var n=e.i(64780),l=e.i(16868),c=e.i(83843),d=e.i(97667),p=e.i(53360),u=e.i(55016),h=e.i(91925),m=e.i(83428),x=e.i(81542),f=e.i(70471),b=e.i(59311),g=e.i(31777),w=e.i(8361);e.i(1650);var j=e.i(11495),v=e.i(45811),y=e.i(35364),C=e.i(98127),k=e.i(48306),N=e.i(41957),D=e.i(81846),T=e.i(90382),S=e.i(51911),P=e.i(2828),F=e.i(30153);e.i(50032);var E=e.i(86254);let R=(0,i.createServerReference)("4002e516a8e476873cae3307f94baf3db6f6684614",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var L=e.i(41413),z=e.i(25235),M=e.i(78521);e.i(13322);var I=e.i(61201),U=e.i(75921),A=e.i(19338),O=e.i(42076);let B=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),$={allowPrd:!1,allowPlan:!1,allowMerge:!1};function q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:c,features:d,repositories:h,initialParentId:m,currentAgentType:C,currentModel:T,initialDescription:z,canPushDirectly:M}){let I=(0,w.useSoundAction)("create"),{t:U}=(0,n.useTranslation)("web"),A=i&&(!h||0===h.length||h.some(e=>e.path===i))?i:"",q=c?.approvalGates??$,W=c?.push??!1,H=c?.openPr??!1,Z=c?.ciWatchEnabled!==!1,J=c?.enableEvidence??!1,V=c?.commitEvidence??!1,X=c?.fast!==!1,[Q,Y]=(0,r.useState)(z??"");(0,r.useEffect)(()=>{z&&Y(z)},[z]);let[_,ee]=(0,r.useState)([]),[et,er]=(0,r.useState)({...q}),[ea,es]=(0,r.useState)(W),[ei,eo]=(0,r.useState)(H),[en,el]=(0,r.useState)(c?.ciWatchEnabled!==!1),[ec,ed]=(0,r.useState)(J),[ep,eu]=(0,r.useState)(V),[eh,em]=(0,r.useState)(void 0),[ex,ef]=(0,r.useState)(X),[eb,eg]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[ev,ey]=(0,r.useState)(!0),[eC,ek]=(0,r.useState)(!0),[eN,eD]=(0,r.useState)(void 0),[eT,eS]=(0,r.useState)(void 0),[eP,eF]=(0,r.useState)(A||void 0),[eE,eR]=(0,r.useState)(h??[]),[eL,ez]=(0,r.useState)(!1),[eM,eI]=(0,r.useState)(null),[eU,eA]=(0,r.useState)(!1),eO=(0,r.useRef)(crypto.randomUUID()),eB=(0,r.useRef)(0),e$=(0,r.useRef)(null);(0,r.useEffect)(()=>{c&&(er({...c.approvalGates}),es(c.push),eo(c.openPr),el(!1!==c.ciWatchEnabled),ed(c.enableEvidence),eu(c.commitEvidence),ef(!1!==c.fast))},[c]),(0,r.useEffect)(()=>{eR(h??[])},[h]),(0,r.useEffect)(()=>{e&&m&&em(m)},[e,m]);let[eq,eG]=(0,r.useState)(M??!1);(0,r.useEffect)(()=>{eG(M??!1)},[M]);let eK=(0,r.useRef)(eP);(0,r.useEffect)(()=>{eP&&eP!==eK.current&&(eK.current=eP,R(eP).then(e=>eG(e.canPushDirectly)).catch(()=>eG(!1)))},[eP]),(0,r.useEffect)(()=>{eq&&(ej(!1),es(W),eo(H),ey(!0))},[eq,W,H]);let eW=(0,r.useCallback)(()=>{Y(""),ee([]),er({...q}),es(W),eo(H),el(Z),ed(J),eu(V),em(void 0),eF(A||void 0),eR(h??[]),ef(X),eg(!1),ej(!1),ey(!0),ek(!0),eD(void 0),eS(void 0),eI(null),eB.current=0,ez(!1)},[q,W,H,J,Z,V,X,A,h]),eH=""!==Q.trim()||_.length>0,{attemptClose:eZ}=(0,F.useGuardedDrawerClose)({open:e,isDirty:eH,onClose:a,onReset:eW}),eJ=(0,r.useCallback)(async e=>{for(let t of(eI(null),e)){if(t.size>0xa00000)return void eI(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!B.has(e))return void eI(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eO.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let s=await a.json();ee(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}},[]),eV=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current+=1,1===eB.current&&ez(!0)},[]),eX=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current-=1,0===eB.current&&ez(!1)},[]),eQ=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eY=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current=0,ez(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eJ(t)},[eJ]),e_=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eJ(r))},[eJ]),e0=(0,r.useCallback)(e=>{if(e.preventDefault(),!Q.trim())return;let t=eP??A;t&&(I.play(),s({description:Q.trim(),attachments:_.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:et.allowPrd??!1,allowPlan:et.allowPlan??!1,allowMerge:et.allowMerge??!1},push:!!ew||ea||ei,openPr:!!ew||ei,ciWatchEnabled:en,enableEvidence:ec,commitEvidence:ep,fast:ex,forkAndPr:ew,commitSpecs:ev,rebaseBeforeBranch:eC,...eb?{pending:eb}:{},...eN?{agentType:eN}:{},...eT?{model:eT}:{},...eh?{parentId:eh}:{},sessionId:eO.current}),eW())},[Q,_,et,eP,A,s,ea,ei,ec,en,ep,ex,ew,ev,eC,eb,eN,eT,eh,I,eW]),e1=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eO.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let a=await r.json();ee(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}}catch{}},[]),e5=(0,r.useCallback)(e=>{ee(t=>t.filter(t=>t.id!==e))},[]),e3=(0,r.useCallback)((e,t)=>{ee(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),e2=(0,r.useRef)(null),e4=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e2.current?.requestSubmit())},[]),e8=(0,r.useCallback)(()=>{eA(!0)},[]),e6=(0,r.useCallback)(()=>{setTimeout(()=>{let e=e$.current?.contains(document.activeElement),t=e$.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eA(!1)},0)},[]),e7=d&&d.length>0,e9=!A&&!eP,te=!A&&void 0!==h,tt=[{id:"allowPrd",label:U("createDrawer.prd"),description:U("createDrawer.prdDescription")},{id:"allowPlan",label:U("createDrawer.plan"),description:U("createDrawer.planDescription")},{id:"allowMerge",label:U("createDrawer.merge"),description:U("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:eZ,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(v.DrawerTitle,{children:U("createDrawer.title")})]}),o?(0,t.jsx)(v.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(D.Badge,{variant:"secondary",children:U("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(y.Button,{variant:"outline",onClick:eZ,disabled:o,children:U("createDrawer.cancel")}),(0,t.jsx)(y.Button,{type:"submit",form:"create-feature-form",disabled:!Q.trim()||o||e9,children:o?U("createDrawer.creating"):U("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e2,id:"create-feature-form",onSubmit:e0,onKeyDown:e4,className:"flex flex-col gap-4",children:[te?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)(K,{repositories:eE,value:eP,onChange:eF,onAddRepository:e=>{eR(t=>[...t,e]),eF(e.path)},disabled:o})]}):A?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:h?.find(e=>e.path===A)?.name??A.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":U("createDrawer.fileDropZone"),"data-drag-over":eL?"true":"false",onDragEnter:eV,onDragLeave:eX,onDragOver:eQ,onDrop:eY,className:(0,g.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eL&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:e$,onFocus:e8,onBlur:e6,className:(0,g.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eU&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(k.Textarea,{id:"feature-description",placeholder:U("createDrawer.featurePlaceholder"),value:Q,onChange:e=>Y(e.target.value),onPaste:e_,required:!0,disabled:o,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(e=>(0,t.jsx)(E.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>e5(e.id),disabled:o,loading:e.loading,notes:e.notes,onNotesChange:t=>e3(e.id,t)},e.id))}),eM?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eM}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(L.AgentModelPicker,{initialAgentType:eN??C??"claude-code",initialModel:eT??T??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eD(e),eS(t)},disabled:o,className:"w-55"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"pending-mode",checked:eb,onCheckedChange:eg,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),U("createDrawer.pendingMode")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:ex,onCheckedChange:ef,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Zap,{className:"h-3.5 w-3.5"}),U("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e1,disabled:o,"aria-label":U("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(l.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("chat.attachFiles")})]})]})]})]}),e7&&void 0!==m?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:d,value:eh,onChange:em,disabled:o})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.approve")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tt.map(e=>(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:et[e.id]??!1,onCheckedChange:t=>er(r=>({...r,[e.id]:t})),disabled:o||ex&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ex&&("allowPrd"===e.id||"allowPlan"===e.id)?U("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tt.every(e=>et[e.id]),t={};for(let r of tt)t[r.id]=!e;er(t)},disabled:o,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",tt.every(e=>et[e.id])&&"text-primary"),children:U("createDrawer.all")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.evidence")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"enable-evidence",size:"sm",checked:ec,onCheckedChange:e=>{ed(e),e||eu(!1)},disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.collect")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.collectDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-evidence",size:"sm",checked:ep,onCheckedChange:eu,disabled:o||!ec||!ei&&!ew}),(0,t.jsx)(N.Label,{htmlFor:"commit-evidence",className:(0,g.cn)("cursor-pointer text-xs font-medium",(!ec||!ei&&!ew)&&"opacity-50"),children:U("createDrawer.addToPr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ei||ew?ec?U("createDrawer.addToPrDescription"):U("createDrawer.requiresEvidence"):U("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:U("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:!!ew||ea||ei,onCheckedChange:e=>{es(e),!e&&ei&&eo(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"push",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.push")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.pushDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:!!ew||ei,onCheckedChange:e=>{eo(e),e||eu(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.pr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.prDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"ci-watch",size:"sm",checked:en,onCheckedChange:el,disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.watch")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"rebase-before-branch",size:"sm",checked:eC,onCheckedChange:ek,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(b.RefreshCw,{className:"h-3 w-3"}),U("createDrawer.sync")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.syncDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-specs",size:"sm",checked:ev,onCheckedChange:ey,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(f.FileText,{className:"h-3 w-3"}),U("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.commitSpecsDescription")})]}),!eq&&(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"fork-and-pr",size:"sm",checked:ew,onCheckedChange:e=>{ej(e),e&&ey(!1)},disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.GitFork,{className:"h-3 w-3"}),U("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),m=(0,r.useRef)(null),x=e.find(e=>e.id===a),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,b=(0,r.useCallback)(e=>{s(e),p(!1),h("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>m.current?.focus(),0):h("")},[l]),(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!x&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:x?`${x.name} (${x.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:m,placeholder:o("createDrawer.searchFeatures"),value:u,onChange:e=>h(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>b(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>b(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function K({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),[f,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),{reactFileManager:N}=(0,U.useFeatureFlags)(),{t:D}=(0,n.useTranslation)("web"),S=e.find(e=>e.path===a),P=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.path.toLowerCase().includes(u.toLowerCase())):e,F=(0,r.useCallback)(e=>{s(e),p(!1),x("")},[s]),E=(0,r.useCallback)(async e=>{let t=await (0,A.addRepository)({path:e});if(t.error){j(t.error),b(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),p(!1),x("")}},[i,s]),R=(0,r.useCallback)(async()=>{if(!f){if(N)return void y(!0);b(!0),j(null);try{let e=await (0,M.pickFolder)();if(!e)return void b(!1);await E(e)}catch{y(!0)}finally{b(!1)}}},[f,N,E]),L=(0,r.useCallback)(async e=>{if(y(!1),e){b(!0),j(null);try{await E(e)}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{b(!1)}}},[E]);return(0,r.useEffect)(()=>{l?setTimeout(()=>k.current?.focus(),0):x("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository",disabled:o,"data-testid":"repository-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!S&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:S?S.name:"Select repository..."}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:k,placeholder:D("createDrawer.searchRepositories"),value:u,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===P.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):P.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>F(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(z.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:R,disabled:f,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[f?(0,t.jsx)(m.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(h.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),w?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:w}):null]})})]}),(0,t.jsx)(I.ReactFileManagerDialog,{open:v,onOpenChange:e=>{e||y(!1)},onSelect:L})]})}function W({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),b=(0,a.usePathname)().startsWith("/create"),g=!x&&b;(0,r.useEffect)(()=>{!b&&x&&f(!1)},[b,x]);let w=(0,r.useCallback)(()=>{m.push("/")},[m]),j=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(q,{open:g,onClose:w,onSubmit:j,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}e.s(["CreateDrawerClient",()=>W],15203)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59311,e=>{"use strict";let t=(0,e.i(3645).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],59311)},16868,e=>{"use strict";var t=e.i(43698);e.s(["PaperclipIcon",()=>t.default])},70471,e=>{"use strict";var t=e.i(16298);e.s(["FileText",()=>t.default])},42076,e=>{"use strict";async function t(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}e.s(["pickFiles",()=>t])},83843,e=>{"use strict";let t=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",()=>t],83843)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(91967),s=e.i(5978),i=e.i(22528),o=e.i(36589),n=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[p,u]=(0,i.createContextScope)(d),[h,m]=p(d),x=r.forwardRef((e,i)=>{let{__scopeSwitch:n,name:l,checked:p,defaultChecked:u,required:m,disabled:x,value:f="on",onCheckedChange:b,form:j,...v}=e,[y,C]=r.useState(null),k=(0,s.useComposedRefs)(i,e=>C(e)),N=r.useRef(!1),D=!y||j||!!y.closest("form"),[T,S]=(0,o.useControllableState)({prop:p,defaultProp:u??!1,onChange:b,caller:d});return(0,t.jsxs)(h,{scope:n,checked:T,disabled:x,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":w(T),"data-disabled":x?"":void 0,disabled:x,value:f,...v,ref:k,onClick:(0,a.composeEventHandlers)(e.onClick,e=>{S(e=>!e),D&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),D&&(0,t.jsx)(g,{control:y,bubbles:!N.current,name:l,value:f,checked:T,required:m,disabled:x,form:j,style:{transform:"translateX(-100%)"}})]})});x.displayName=d;var f="SwitchThumb",b=r.forwardRef((e,r)=>{let{__scopeSwitch:a,...s}=e,i=m(f,a);return(0,t.jsx)(c.Primitive.span,{"data-state":w(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:r})});b.displayName=f;var g=r.forwardRef(({__scopeSwitch:e,control:a,checked:i,bubbles:o=!0,...c},d)=>{let p=r.useRef(null),u=(0,s.useComposedRefs)(p,d),h=(0,n.usePrevious)(i),m=(0,l.useSize)(a);return r.useEffect(()=>{let e=p.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==i&&t){let r=new Event("click",{bubbles:o});t.call(e,i),e.dispatchEvent(r)}},[h,i,o]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:u,style:{...c.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>x,"Switch",()=>x,"SwitchThumb",()=>b,"Thumb",()=>b,"createSwitchScope",()=>u],95291);var j=e.i(95291),j=j,v=e.i(31777);function y({className:e,size:r="default",...a}){return(0,t.jsx)(j.Root,{"data-slot":"switch","data-size":r,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...a,children:(0,t.jsx)(j.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>y],51911)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),s=e.i(60112),i=e.i(21023);let o=(0,i.createServerReference)("40c3dc2198baaeaf71dde47b5ffdb7bce9f2d6dece",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(41001);var n=e.i(64780),l=e.i(16868),c=e.i(83843),d=e.i(97667),p=e.i(53360),u=e.i(55016),h=e.i(91925),m=e.i(83428),x=e.i(81542),f=e.i(70471),b=e.i(59311),g=e.i(31777),w=e.i(8361);e.i(1650);var j=e.i(11495),v=e.i(45811),y=e.i(35364),C=e.i(98127),k=e.i(48306),N=e.i(41957),D=e.i(81846),T=e.i(90382),S=e.i(51911),P=e.i(2828),F=e.i(30153);e.i(50032);var E=e.i(86254);let R=(0,i.createServerReference)("40128d97cb482625ba26adb60b4cdcf48721c54fb7",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var L=e.i(41413),z=e.i(25235),M=e.i(78521);e.i(13322);var I=e.i(61201),U=e.i(75921),A=e.i(91293),O=e.i(42076);let B=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),$={allowPrd:!1,allowPlan:!1,allowMerge:!1};function q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:c,features:d,repositories:h,initialParentId:m,currentAgentType:C,currentModel:T,initialDescription:z,canPushDirectly:M}){let I=(0,w.useSoundAction)("create"),{t:U}=(0,n.useTranslation)("web"),A=i&&(!h||0===h.length||h.some(e=>e.path===i))?i:"",q=c?.approvalGates??$,W=c?.push??!1,H=c?.openPr??!1,Z=c?.ciWatchEnabled!==!1,J=c?.enableEvidence??!1,V=c?.commitEvidence??!1,X=c?.fast!==!1,[Q,Y]=(0,r.useState)(z??"");(0,r.useEffect)(()=>{z&&Y(z)},[z]);let[_,ee]=(0,r.useState)([]),[et,er]=(0,r.useState)({...q}),[ea,es]=(0,r.useState)(W),[ei,eo]=(0,r.useState)(H),[en,el]=(0,r.useState)(c?.ciWatchEnabled!==!1),[ec,ed]=(0,r.useState)(J),[ep,eu]=(0,r.useState)(V),[eh,em]=(0,r.useState)(void 0),[ex,ef]=(0,r.useState)(X),[eb,eg]=(0,r.useState)(!1),[ew,ej]=(0,r.useState)(!1),[ev,ey]=(0,r.useState)(!0),[eC,ek]=(0,r.useState)(!0),[eN,eD]=(0,r.useState)(void 0),[eT,eS]=(0,r.useState)(void 0),[eP,eF]=(0,r.useState)(A||void 0),[eE,eR]=(0,r.useState)(h??[]),[eL,ez]=(0,r.useState)(!1),[eM,eI]=(0,r.useState)(null),[eU,eA]=(0,r.useState)(!1),eO=(0,r.useRef)(crypto.randomUUID()),eB=(0,r.useRef)(0),e$=(0,r.useRef)(null);(0,r.useEffect)(()=>{c&&(er({...c.approvalGates}),es(c.push),eo(c.openPr),el(!1!==c.ciWatchEnabled),ed(c.enableEvidence),eu(c.commitEvidence),ef(!1!==c.fast))},[c]),(0,r.useEffect)(()=>{eR(h??[])},[h]),(0,r.useEffect)(()=>{e&&m&&em(m)},[e,m]);let[eq,eG]=(0,r.useState)(M??!1);(0,r.useEffect)(()=>{eG(M??!1)},[M]);let eK=(0,r.useRef)(eP);(0,r.useEffect)(()=>{eP&&eP!==eK.current&&(eK.current=eP,R(eP).then(e=>eG(e.canPushDirectly)).catch(()=>eG(!1)))},[eP]),(0,r.useEffect)(()=>{eq&&(ej(!1),es(W),eo(H),ey(!0))},[eq,W,H]);let eW=(0,r.useCallback)(()=>{Y(""),ee([]),er({...q}),es(W),eo(H),el(Z),ed(J),eu(V),em(void 0),eF(A||void 0),eR(h??[]),ef(X),eg(!1),ej(!1),ey(!0),ek(!0),eD(void 0),eS(void 0),eI(null),eB.current=0,ez(!1)},[q,W,H,J,Z,V,X,A,h]),eH=""!==Q.trim()||_.length>0,{attemptClose:eZ}=(0,F.useGuardedDrawerClose)({open:e,isDirty:eH,onClose:a,onReset:eW}),eJ=(0,r.useCallback)(async e=>{for(let t of(eI(null),e)){if(t.size>0xa00000)return void eI(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!B.has(e))return void eI(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eO.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let s=await a.json();ee(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}},[]),eV=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current+=1,1===eB.current&&ez(!0)},[]),eX=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current-=1,0===eB.current&&ez(!1)},[]),eQ=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eY=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eB.current=0,ez(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eJ(t)},[eJ]),e_=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eJ(r))},[eJ]),e0=(0,r.useCallback)(e=>{if(e.preventDefault(),!Q.trim())return;let t=eP??A;t&&(I.play(),s({description:Q.trim(),attachments:_.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:et.allowPrd??!1,allowPlan:et.allowPlan??!1,allowMerge:et.allowMerge??!1},push:!!ew||ea||ei,openPr:!!ew||ei,ciWatchEnabled:en,enableEvidence:ec,commitEvidence:ep,fast:ex,forkAndPr:ew,commitSpecs:ev,rebaseBeforeBranch:eC,...eb?{pending:eb}:{},...eN?{agentType:eN}:{},...eT?{model:eT}:{},...eh?{parentId:eh}:{},sessionId:eO.current}),eW())},[Q,_,et,eP,A,s,ea,ei,ec,en,ep,ex,ew,ev,eC,eb,eN,eT,eh,I,eW]),e1=(0,r.useCallback)(async()=>{try{let e=await (0,O.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();ee(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eO.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));ee(t=>t.filter(t=>t.id!==e)),eI(t.error??"Upload failed");return}let a=await r.json();ee(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{ee(t=>t.filter(t=>t.id!==e)),eI("Upload failed")}}}catch{}},[]),e5=(0,r.useCallback)(e=>{ee(t=>t.filter(t=>t.id!==e))},[]),e2=(0,r.useCallback)((e,t)=>{ee(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]),e3=(0,r.useRef)(null),e4=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),e3.current?.requestSubmit())},[]),e8=(0,r.useCallback)(()=>{eA(!0)},[]),e9=(0,r.useCallback)(()=>{setTimeout(()=>{let e=e$.current?.contains(document.activeElement),t=e$.current?.querySelector('[aria-expanded="true"]')!==null;e||t||eA(!1)},0)},[]),e6=d&&d.length>0,e7=!A&&!eP,te=!A&&void 0!==h,tt=[{id:"allowPrd",label:U("createDrawer.prd"),description:U("createDrawer.prdDescription")},{id:"allowPlan",label:U("createDrawer.plan"),description:U("createDrawer.planDescription")},{id:"allowMerge",label:U("createDrawer.merge"),description:U("createDrawer.mergeDescription")}];return(0,t.jsx)(j.BaseDrawer,{open:e,onClose:eZ,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(v.DrawerTitle,{children:U("createDrawer.title")})]}),o?(0,t.jsx)(v.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(D.Badge,{variant:"secondary",children:U("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(y.Button,{variant:"outline",onClick:eZ,disabled:o,children:U("createDrawer.cancel")}),(0,t.jsx)(y.Button,{type:"submit",form:"create-feature-form",disabled:!Q.trim()||o||e7,children:o?U("createDrawer.creating"):U("createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(P.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:e3,id:"create-feature-form",onSubmit:e0,onKeyDown:e4,className:"flex flex-col gap-4",children:[te?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)(K,{repositories:eE,value:eP,onChange:eF,onAddRepository:e=>{eR(t=>[...t,e]),eF(e.path)},disabled:o})]}):A?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(N.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:h?.find(e=>e.path===A)?.name??A.split("/").pop()})]}):null,(0,t.jsxs)("div",{role:"region","aria-label":U("createDrawer.fileDropZone"),"data-drag-over":eL?"true":"false",onDragEnter:eV,onDragLeave:eX,onDragOver:eQ,onDrop:eY,className:(0,g.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",eL&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(N.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:e$,onFocus:e8,onBlur:e9,className:(0,g.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",eU&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(k.Textarea,{id:"feature-description",placeholder:U("createDrawer.featurePlaceholder"),value:Q,onChange:e=>Y(e.target.value),onPaste:e_,required:!0,disabled:o,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(e=>(0,t.jsx)(E.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>e5(e.id),disabled:o,loading:e.loading,notes:e.notes,onNotesChange:t=>e2(e.id,t)},e.id))}),eM?(0,t.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:eM}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(L.AgentModelPicker,{initialAgentType:eN??C??"claude-code",initialModel:eT??T??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(e,t)=>{eD(e),eS(t)},disabled:o,className:"w-55"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"pending-mode",checked:eb,onCheckedChange:eg,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),U("createDrawer.pendingMode")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(S.Switch,{id:"fast-mode",checked:ex,onCheckedChange:ef,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(p.Zap,{className:"h-3.5 w-3.5"}),U("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:e1,disabled:o,"aria-label":U("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(l.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("chat.attachFiles")})]})]})]})]}),e6&&void 0!==m?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(N.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:U("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:d,value:eh,onChange:em,disabled:o})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.approve")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:tt.map(e=>(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:`approve-${e.id}`,size:"sm",checked:et[e.id]??!1,onCheckedChange:t=>er(r=>({...r,[e.id]:t})),disabled:o||ex&&("allowPrd"===e.id||"allowPlan"===e.id)}),(0,t.jsx)(N.Label,{htmlFor:`approve-${e.id}`,className:"cursor-pointer text-xs font-medium",children:e.label})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ex&&("allowPrd"===e.id||"allowPlan"===e.id)?U("createDrawer.skippedInFastMode"):e.description})]},e.id))}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=tt.every(e=>et[e.id]),t={};for(let r of tt)t[r.id]=!e;er(t)},disabled:o,className:(0,g.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",tt.every(e=>et[e.id])&&"text-primary"),children:U("createDrawer.all")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:U("createDrawer.evidence")})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"enable-evidence",size:"sm",checked:ec,onCheckedChange:e=>{ed(e),e||eu(!1)},disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.collect")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.collectDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-evidence",size:"sm",checked:ep,onCheckedChange:eu,disabled:o||!ec||!ei&&!ew}),(0,t.jsx)(N.Label,{htmlFor:"commit-evidence",className:(0,g.cn)("cursor-pointer text-xs font-medium",(!ec||!ei&&!ew)&&"opacity-50"),children:U("createDrawer.addToPr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ei||ew?ec?U("createDrawer.addToPrDescription"):U("createDrawer.requiresEvidence"):U("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:U("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"push",size:"sm",checked:!!ew||ea||ei,onCheckedChange:e=>{es(e),!e&&ei&&eo(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"push",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.push")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.pushDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"open-pr",size:"sm",checked:!!ew||ei,onCheckedChange:e=>{eo(e),e||eu(!1)},disabled:o||ew}),(0,t.jsx)(N.Label,{htmlFor:"open-pr",className:(0,g.cn)("cursor-pointer text-xs font-medium",ew&&"opacity-50"),children:U("createDrawer.pr")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:ew?"Enabled — contributing to upstream":U("createDrawer.prDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"ci-watch",size:"sm",checked:en,onCheckedChange:el,disabled:o}),(0,t.jsx)(N.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:U("createDrawer.watch")})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"rebase-before-branch",size:"sm",checked:eC,onCheckedChange:ek,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(b.RefreshCw,{className:"h-3 w-3"}),U("createDrawer.sync")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.syncDescription")})]}),(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"commit-specs",size:"sm",checked:ev,onCheckedChange:ey,disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(f.FileText,{className:"h-3 w-3"}),U("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.commitSpecsDescription")})]}),!eq&&(0,t.jsxs)(P.Tooltip,{children:[(0,t.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(S.Switch,{id:"fork-and-pr",size:"sm",checked:ew,onCheckedChange:e=>{ej(e),e&&ey(!1)},disabled:o}),(0,t.jsxs)(N.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(x.GitFork,{className:"h-3 w-3"}),U("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(P.TooltipContent,{side:"bottom",children:U("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,p]=(0,r.useState)(!1),[u,h]=(0,r.useState)(""),m=(0,r.useRef)(null),x=e.find(e=>e.id===a),f=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.id.toLowerCase().includes(u.toLowerCase())):e,b=(0,r.useCallback)(e=>{s(e),p(!1),h("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>m.current?.focus(),0):h("")},[l]),(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!x&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:x?`${x.name} (${x.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:m,placeholder:o("createDrawer.searchFeatures"),value:u,onChange:e=>h(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>b(void 0),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===f.length&&u?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):f.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>b(e.id),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function K({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,p]=(0,r.useState)(!1),[u,x]=(0,r.useState)(""),[f,b]=(0,r.useState)(!1),[w,j]=(0,r.useState)(null),[v,y]=(0,r.useState)(!1),k=(0,r.useRef)(null),{reactFileManager:N}=(0,U.useFeatureFlags)(),{t:D}=(0,n.useTranslation)("web"),S=e.find(e=>e.path===a),P=u.trim()?e.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.path.toLowerCase().includes(u.toLowerCase())):e,F=(0,r.useCallback)(e=>{s(e),p(!1),x("")},[s]),E=(0,r.useCallback)(async e=>{let t=await (0,A.addRepository)({path:e});if(t.error){j(t.error),b(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),p(!1),x("")}},[i,s]),R=(0,r.useCallback)(async()=>{if(!f){if(N)return void y(!0);b(!0),j(null);try{let e=await (0,M.pickFolder)();if(!e)return void b(!1);await E(e)}catch{y(!0)}finally{b(!1)}}},[f,N,E]),L=(0,r.useCallback)(async e=>{if(y(!1),e){b(!0),j(null);try{await E(e)}catch(e){j(e instanceof Error?e.message:"Failed to add repository")}finally{b(!1)}}},[E]);return(0,r.useEffect)(()=>{l?setTimeout(()=>k.current?.focus(),0):x("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(T.Popover,{open:l,onOpenChange:p,children:[(0,t.jsx)(T.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository",disabled:o,"data-testid":"repository-combobox",className:(0,g.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!S&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:S?S.name:"Select repository..."}),(0,t.jsx)(c.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(T.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(C.Input,{ref:k,placeholder:D("createDrawer.searchRepositories"),value:u,onChange:e=>x(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===P.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):P.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>F(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(d.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(z.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:R,disabled:f,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[f?(0,t.jsx)(m.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(h.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),w?(0,t.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:w}):null]})})]}),(0,t.jsx)(I.ReactFileManagerDialog,{open:v,onOpenChange:e=>{e||y(!1)},onSelect:L})]})}function W({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),b=(0,a.usePathname)().startsWith("/create"),g=!x&&b;(0,r.useEffect)(()=>{!b&&x&&f(!1)},[b,x]);let w=(0,r.useCallback)(()=>{m.push("/")},[m]),j=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(q,{open:g,onClose:w,onSubmit:j,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}e.s(["CreateDrawerClient",()=>W],15203)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(20314),i=e.i(79054),n=e.i(23925),s=e.i(26370),a=e.i(38573),l=e.i(49228),r=e.i(74294),o=e.i(3645);let c=(0,o.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),d=(0,o.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),u=(0,o.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var g=e.i(32494),h=e.i(10714),h=h,m=e.i(3214),p=e.i(30702);let f=(0,o.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var x=e.i(58860),v=e.i(48109);let b=(0,o.default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var w=e.i(60112);e.i(41001);var j=e.i(64780),y=e.i(31777),S=e.i(41957),k=e.i(51911),C=e.i(47373),M=e.i(21023);let N=(0,M.createServerReference)("409d9db239f6043e3e566e5af39a7842d7e0a29cdb",M.callServer,void 0,M.findSourceMapURL,"updateSettingsAction");var I=e.i(17406),T=e.i(98804),A=e.i(44229),D=e.i(83902);function F(e){return(0,t.jsx)(A.Code,{className:(0,y.cn)("h-4 w-4",e.className),...e})}function P({className:e}){return(0,t.jsx)(T.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function E({className:e}){return(0,t.jsx)(T.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function R({className:e}){return(0,t.jsx)(T.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function z({className:e}){return(0,t.jsx)(T.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function B({className:e,...i}){return(0,t.jsx)(D.Rocket,{className:(0,y.cn)("h-4 w-4",e),...i})}P.displayName="VsCodeIcon",E.displayName="CursorEditorIcon",R.displayName="WindsurfIcon",z.displayName="ZedIcon",B.displayName="AntigravityIcon";let L={vscode:P,cursor:E,windsurf:R,zed:z,antigravity:B};var _=e.i(41413),K=e.i(956);let V=[{value:I.Language.English,label:"English",nativeName:"English"},{value:I.Language.Russian,label:"Русский",nativeName:"Русский"},{value:I.Language.Portuguese,label:"Português",nativeName:"Português"},{value:I.Language.Spanish,label:"Español",nativeName:"Español"},{value:I.Language.Arabic,label:"العربية",nativeName:"العربية"},{value:I.Language.Hebrew,label:"עברית",nativeName:"עברית"},{value:I.Language.French,label:"Français",nativeName:"Français"},{value:I.Language.German,label:"Deutsch",nativeName:"Deutsch"}];function W({language:e}){let{t:s,i18n:a}=(0,j.useTranslation)("web"),[l,r]=(0,i.useState)(e),[o,c]=(0,i.useTransition)(),[d,u]=(0,i.useState)(!1),h=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{if(h.current&&!o){u(!0);let e=setTimeout(()=>u(!1),2e3);return()=>clearTimeout(e)}h.current=o},[o]),(0,t.jsxs)(K.Card,{id:"language",className:"scroll-mt-6","data-testid":"language-settings-section",children:[(0,t.jsxs)(K.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(g.Globe,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)(K.CardTitle,{children:s("settings.language.title")})]}),o?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:s("common:labels.saving")}):null,d&&!o?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(n.Check,{className:"h-3 w-3"}),s("common:labels.saved")]}):null]}),(0,t.jsx)(K.CardDescription,{children:s("settings.language.description")})]}),(0,t.jsx)(K.CardContent,{className:"space-y-4",children:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(S.Label,{htmlFor:"display-language",children:s("settings.language.label")}),(0,t.jsxs)(C.Select,{value:l,onValueChange:function(e){r(e),a.changeLanguage(e);let t="ar"===e||"he"===e?"rtl":"ltr";document.documentElement.lang=e,document.documentElement.dir=t,c(async()=>{let t=await N({user:{preferredLanguage:e}});t.success||w.toast.error(t.error??s("settings.language.failedToSave","Failed to save language settings"))})},children:[(0,t.jsx)(C.SelectTrigger,{id:"display-language","data-testid":"language-select",children:(0,t.jsx)(C.SelectValue,{placeholder:s("settings.language.placeholder")})}),(0,t.jsx)(C.SelectContent,{children:V.map(e=>(0,t.jsx)(C.SelectItem,{value:e.value,children:e.nativeName},e.value))})]})]})})]})}var H=e.i(27069),O=e.i(91967),q=e.i(5978),G=e.i(22528),U=e.i(36589),$=e.i(66033),Z=e.i(23405),X=e.i(77624),Y=e.i(87620),J=e.i(87342),Q=["PageUp","PageDown"],ee=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],et={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},ei="Slider",[en,es,ea]=(0,J.createCollection)(ei),[el,er]=(0,G.createContextScope)(ei,[ea]),[eo,ec]=el(ei),ed=i.forwardRef((e,n)=>{let{name:s,min:a=0,max:l=100,step:r=1,orientation:o="horizontal",disabled:c=!1,minStepsBetweenThumbs:d=0,defaultValue:u=[a],value:g,onValueChange:h=()=>{},onValueCommit:m=()=>{},inverted:p=!1,form:f,...x}=e,v=i.useRef(new Set),b=i.useRef(0),w="horizontal"===o,[j=[],y]=(0,U.useControllableState)({prop:g,defaultProp:u,onChange:e=>{let t=[...v.current];t[b.current]?.focus(),h(e)}}),S=i.useRef(j);function k(e,t,{commit:i}={commit:!1}){let n,s=(String(r).split(".")[1]||"").length,o=Math.round((Math.round((e-a)/r)*r+a)*(n=Math.pow(10,s)))/n,c=(0,H.clamp)(o,[a,l]);y((e=[])=>{let n=function(e=[],t,i){let n=[...e];return n[i]=t,n.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,i)=>e[i+1]-t))>=t;return!0}(n,d*r))return e;{b.current=n.indexOf(c);let t=String(n)!==String(e);return t&&i&&m(n),t?n:e}})}return(0,t.jsx)(eo,{scope:e.__scopeSlider,name:s,disabled:c,min:a,max:l,valueIndexToChangeRef:b,thumbs:v.current,values:j,orientation:o,form:f,children:(0,t.jsx)(en.Provider,{scope:e.__scopeSlider,children:(0,t.jsx)(en.Slot,{scope:e.__scopeSlider,children:(0,t.jsx)(w?eh:em,{"aria-disabled":c,"data-disabled":c?"":void 0,...x,ref:n,onPointerDown:(0,O.composeEventHandlers)(x.onPointerDown,()=>{c||(S.current=j)}),min:a,max:l,inverted:p,onSlideStart:c?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let i=e.map(e=>Math.abs(e-t)),n=Math.min(...i);return i.indexOf(n)}(j,e);k(e,t)},onSlideMove:c?void 0:function(e){k(e,b.current)},onSlideEnd:c?void 0:function(){let e=S.current[b.current];j[b.current]!==e&&m(j)},onHomeKeyDown:()=>!c&&k(a,0,{commit:!0}),onEndKeyDown:()=>!c&&k(l,j.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){let i=Q.includes(e.key)||e.shiftKey&&ee.includes(e.key),n=b.current;k(j[n]+r*(i?10:1)*t,n,{commit:!0})}}})})})})});ed.displayName=ei;var[eu,eg]=el(ei,{startEdge:"left",endEdge:"right",size:"width",direction:1}),eh=i.forwardRef((e,n)=>{let{min:s,max:a,dir:l,inverted:r,onSlideStart:o,onSlideMove:c,onSlideEnd:d,onStepKeyDown:u,...g}=e,[h,m]=i.useState(null),p=(0,q.useComposedRefs)(n,e=>m(e)),f=i.useRef(void 0),x=(0,$.useDirection)(l),v="ltr"===x,b=v&&!r||!v&&r;function w(e){let t=f.current||h.getBoundingClientRect(),i=eC([0,t.width],b?[s,a]:[a,s]);return f.current=t,i(e-t.left)}return(0,t.jsx)(eu,{scope:e.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:(0,t.jsx)(ep,{dir:x,"data-orientation":"horizontal",...g,ref:p,style:{...g.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=w(e.clientX);o?.(t)},onSlideMove:e=>{let t=w(e.clientX);c?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=et[b?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),em=i.forwardRef((e,n)=>{let{min:s,max:a,inverted:l,onSlideStart:r,onSlideMove:o,onSlideEnd:c,onStepKeyDown:d,...u}=e,g=i.useRef(null),h=(0,q.useComposedRefs)(n,g),m=i.useRef(void 0),p=!l;function f(e){let t=m.current||g.current.getBoundingClientRect(),i=eC([0,t.height],p?[a,s]:[s,a]);return m.current=t,i(e-t.top)}return(0,t.jsx)(eu,{scope:e.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1,children:(0,t.jsx)(ep,{"data-orientation":"vertical",...u,ref:h,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=f(e.clientY);r?.(t)},onSlideMove:e=>{let t=f(e.clientY);o?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{let t=et[p?"from-bottom":"from-top"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})}),ep=i.forwardRef((e,i)=>{let{__scopeSlider:n,onSlideStart:s,onSlideMove:a,onSlideEnd:l,onHomeKeyDown:r,onEndKeyDown:o,onStepKeyDown:c,...d}=e,u=ec(ei,n);return(0,t.jsx)(Y.Primitive.span,{...d,ref:i,onKeyDown:(0,O.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(r(e),e.preventDefault()):"End"===e.key?(o(e),e.preventDefault()):Q.concat(ee).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:(0,O.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():s(e)}),onPointerMove:(0,O.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:(0,O.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),l(e))})})}),ef="SliderTrack",ex=i.forwardRef((e,i)=>{let{__scopeSlider:n,...s}=e,a=ec(ef,n);return(0,t.jsx)(Y.Primitive.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...s,ref:i})});ex.displayName=ef;var ev="SliderRange",eb=i.forwardRef((e,n)=>{let{__scopeSlider:s,...a}=e,l=ec(ev,s),r=eg(ev,s),o=i.useRef(null),c=(0,q.useComposedRefs)(n,o),d=l.values.length,u=l.values.map(e=>ek(e,l.min,l.max)),g=d>1?Math.min(...u):0,h=100-Math.max(...u);return(0,t.jsx)(Y.Primitive.span,{"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,...a,ref:c,style:{...e.style,[r.startEdge]:g+"%",[r.endEdge]:h+"%"}})});eb.displayName=ev;var ew="SliderThumb",ej=i.forwardRef((e,n)=>{let s=es(e.__scopeSlider),[a,l]=i.useState(null),r=(0,q.useComposedRefs)(n,e=>l(e)),o=i.useMemo(()=>a?s().findIndex(e=>e.ref.current===a):-1,[s,a]);return(0,t.jsx)(ey,{...e,ref:r,index:o})}),ey=i.forwardRef((e,n)=>{var s,a,l,r,o;let c,d,{__scopeSlider:u,index:g,name:h,...m}=e,p=ec(ew,u),f=eg(ew,u),[x,v]=i.useState(null),b=(0,q.useComposedRefs)(n,e=>v(e)),w=!x||p.form||!!x.closest("form"),j=(0,X.useSize)(x),y=p.values[g],S=void 0===y?0:ek(y,p.min,p.max),k=(s=g,(a=p.values.length)>2?`Value ${s+1} of ${a}`:2===a?["Minimum","Maximum"][s]:void 0),C=j?.[f.size],M=C?(l=C,r=S,o=f.direction,d=eC([0,50],[0,c=l/2]),(c-d(r)*o)*o):0;return i.useEffect(()=>{if(x)return p.thumbs.add(x),()=>{p.thumbs.delete(x)}},[x,p.thumbs]),(0,t.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[f.startEdge]:`calc(${S}% + ${M}px)`},children:[(0,t.jsx)(en.ItemSlot,{scope:e.__scopeSlider,children:(0,t.jsx)(Y.Primitive.span,{role:"slider","aria-label":e["aria-label"]||k,"aria-valuemin":p.min,"aria-valuenow":y,"aria-valuemax":p.max,"aria-orientation":p.orientation,"data-orientation":p.orientation,"data-disabled":p.disabled?"":void 0,tabIndex:p.disabled?void 0:0,...m,ref:b,style:void 0===y?{display:"none"}:e.style,onFocus:(0,O.composeEventHandlers)(e.onFocus,()=>{p.valueIndexToChangeRef.current=g})})}),w&&(0,t.jsx)(eS,{name:h??(p.name?p.name+(p.values.length>1?"[]":""):void 0),form:p.form,value:y},g)]})});ej.displayName=ew;var eS=i.forwardRef(({__scopeSlider:e,value:n,...s},a)=>{let l=i.useRef(null),r=(0,q.useComposedRefs)(l,a),o=(0,Z.usePrevious)(n);return i.useEffect(()=>{let e=l.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(o!==n&&t){let i=new Event("input",{bubbles:!0});t.call(e,n),e.dispatchEvent(i)}},[o,n]),(0,t.jsx)(Y.Primitive.input,{style:{display:"none"},...s,ref:r,defaultValue:n})});function ek(e,t,i){return(0,H.clamp)(100/(i-t)*(e-t),[0,100])}function eC(e,t){return i=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(i-e[0])}}eS.displayName="RadioBubbleInput",e.s(["Range",()=>eb,"Root",()=>ed,"Slider",()=>ed,"SliderRange",()=>eb,"SliderThumb",()=>ej,"SliderTrack",()=>ex,"Thumb",()=>ej,"Track",()=>ex,"createSliderScope",()=>er],29991);var eM=e.i(29991),eM=eM;function eN({className:e,defaultValue:n,value:s,min:a=0,max:l=100,...r}){let o=i.useMemo(()=>Array.isArray(s)?s:Array.isArray(n)?n:[a,l],[s,n,a,l]);return(0,t.jsxs)(eM.Root,{"data-slot":"slider",defaultValue:n,value:s,min:a,max:l,className:(0,y.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...r,children:[(0,t.jsx)(eM.Track,{"data-slot":"slider-track",className:(0,y.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,t.jsx)(eM.Range,{"data-slot":"slider-range",className:(0,y.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:o.length},(e,i)=>(0,t.jsx)(eM.Thumb,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},i))]})}let eI=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],eT=eI.length-1;function eA(e){let t=0,i=Math.abs(e-eI[0]);for(let n=1;n<eI.length;n++){let s=Math.abs(e-eI[n]);s<i&&(i=s,t=n)}return t}function eD({id:e,testId:n,value:s,onChange:a,onBlur:l,defaultSeconds:r=1800}){var o;let c,d,u=(""===s?r:parseInt(s,10))||r,[g,h]=(0,i.useState)(()=>eA(u)),m=eA(u);m!==g&&eI[g]!==u&&h(m);let p=(0,i.useCallback)(([e])=>{h(e),a(String(eI[e]))},[a]);return(0,t.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,t.jsx)(eN,{id:e,"data-testid":n,min:0,max:eT,step:1,value:[g],onValueChange:p,onValueCommit:()=>l(),className:"min-w-0 flex-1"}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 text-end text-xs tabular-nums",children:(c=Math.floor((o=eI[g])/3600),d=Math.round(o%3600/60),0===c?`${d}m`:0===d?`${c}h`:`${c}h ${d}m`)})]})}let eF=[{value:I.EditorType.VsCode,label:"VS Code"},{value:I.EditorType.Cursor,label:"Cursor"},{value:I.EditorType.Windsurf,label:"Windsurf"},{value:I.EditorType.Zed,label:"Zed"},{value:I.EditorType.Antigravity,label:"Antigravity"}],eP=[{value:"bash",label:"Bash"},{value:"zsh",label:"Zsh"},{value:"fish",label:"Fish"}],eE=[{id:"language",labelKey:"settings.sections.language",icon:g.Globe},{id:"agent",labelKey:"settings.sections.agent",icon:s.Bot},{id:"environment",labelKey:"settings.sections.environment",icon:a.Terminal},{id:"workflow",labelKey:"settings.sections.workflow",icon:l.GitBranch},{id:"ci",labelKey:"settings.sections.ci",icon:r.Activity},{id:"stage-timeouts",labelKey:"settings.sections.timeouts",icon:x.Timer},{id:"notifications",labelKey:"settings.sections.notifications",icon:c},{id:"feature-flags",labelKey:"settings.sections.flags",icon:d},{id:"interactive-agent",labelKey:"settings.sections.chat",icon:v.MessageSquare},{id:"fab-layout",labelKey:"settings.sections.layout",icon:b},{id:"database",labelKey:"settings.sections.database",icon:u}];function eR({label:e,description:i,htmlFor:n,children:s}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)(S.Label,{htmlFor:n,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:e}),i?(0,t.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:i}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:s})]})}function ez({label:e,description:i,id:n,testId:s,checked:a,onChange:l,disabled:r}){return(0,t.jsx)(eR,{label:e,description:i,htmlFor:n,children:(0,t.jsx)(k.Switch,{id:n,"data-testid":s,checked:a,onCheckedChange:l,disabled:r,className:(0,y.cn)("cursor-pointer",r&&"cursor-not-allowed opacity-50")})})}function eB({icon:e,title:i,description:n,badge:s,testId:a,children:l}){return(0,t.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":a,children:[(0,t.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(e,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("h2",{className:"text-sm font-semibold",children:i}),s?(0,t.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:s}):null]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:n})]}),(0,t.jsx)("div",{className:"px-4",children:l})]})}function eL({id:e,testId:i,value:n,onChange:s,onBlur:a,placeholder:l,min:r=1,max:o,step:c=1,suffix:d}){let{t:u}=(0,j.useTranslation)("web"),g=""===n?void 0:parseInt(n,10);return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{s(String(Math.max(r,(g??parseInt(l,10))-c)))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-r transition-colors","aria-label":u("common.decrease"),children:(0,t.jsx)(h.default,{className:"h-3 w-3"})}),(0,t.jsx)("input",{id:e,"data-testid":i,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:n,placeholder:l,onChange:e=>{s(e.target.value.replace(/[^0-9]/g,""))},onBlur:a,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e;e=g??parseInt(l,10),s(String(null!=o?Math.min(o,e+c):e+c))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-l transition-colors","aria-label":u("common.increase"),children:(0,t.jsx)(m.Plus,{className:"h-3 w-3"})})]}),d?(0,t.jsx)("span",{className:"text-muted-foreground text-[11px]",children:d}):null]})}function e_({children:e}){return(0,t.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:e})})}function eK({children:e,links:i}){return(0,t.jsxs)("div",{className:"hidden pt-2 lg:block",children:[(0,t.jsx)("p",{className:"text-muted-foreground/70 text-[11px] leading-relaxed",children:e}),null!=i&&i.length>0?(0,t.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:i.map(e=>(0,t.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-[10px] transition-colors",children:[(0,t.jsx)(p.ExternalLink,{className:"h-2.5 w-2.5"}),e.label]},e.href))}):null]})}function eV({settings:e,shepHome:o,dbFileSize:g,availableTerminals:h}){let{t:m}=(0,j.useTranslation)("web"),{showSaving:p,showSaved:S,save:k}=function(){let{t:e}=(0,j.useTranslation)("web"),[t,n]=(0,i.useTransition)(),[s,a]=(0,i.useState)(!1),[l,r]=(0,i.useState)(!1),o=(0,i.useRef)(null),c=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{t&&!s&&(a(!0),c.current=!1,o.current=setTimeout(()=>{o.current=null,c.current&&(a(!1),r(!0),setTimeout(()=>r(!1),2e3))},350)),!t&&s&&(c.current=!0,o.current||(a(!1),r(!0),setTimeout(()=>r(!1),2e3)))},[t,s]),{showSaving:s,showSaved:l,save:(0,i.useCallback)(t=>{n(async()=>{let i=await N(t);i.success||w.toast.error(i.error??e("settings.failedToSave"))})},[n,e])}}(),M=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1,githubImport:!1,adoptBranch:!1,gitRebaseSync:!1,reactFileManager:!1},[T,A]=(0,i.useState)(e.agent.type),[D,P]=(0,i.useState)(e.environment.defaultEditor),[E,R]=(0,i.useState)(e.environment.shellPreference),[z,B]=(0,i.useState)(e.environment.terminalPreference??I.TerminalType.System),K=h?h.filter(e=>e.available):[{id:I.TerminalType.System,name:m("settings.environment.systemTerminal"),available:!0}],[V,H]=(0,i.useState)(e.workflow.openPrOnImplementationComplete),[O,q]=(0,i.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[G,U]=(0,i.useState)(e.workflow.approvalGateDefaults.allowPrd),[$,Z]=(0,i.useState)(e.workflow.approvalGateDefaults.allowPlan),[X,Y]=(0,i.useState)(e.workflow.approvalGateDefaults.allowMerge),[J,Q]=(0,i.useState)(e.workflow.enableEvidence),[ee,et]=(0,i.useState)(e.workflow.commitEvidence),[ei,en]=(0,i.useState)(!1!==e.workflow.ciWatchEnabled),[es,ea]=(0,i.useState)(!1!==e.workflow.hideCiStatus),[el,er]=(0,i.useState)(!1!==e.workflow.defaultFastMode),[eo,ec]=(0,i.useState)((e.workflow.autoArchiveDelayMinutes??10)>0),[ed,eu]=(0,i.useState)(String(e.workflow.autoArchiveDelayMinutes??10)),[eg,eh]=(0,i.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[em,ep]=(0,i.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[ef,ex]=(0,i.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[ev,eb]=(0,i.useState)(null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):""),ew=e.workflow.stageTimeouts,[ej,ey]=(0,i.useState)(String(Math.round((ew?.analyzeMs??18e5)/1e3))),[eS,ek]=(0,i.useState)(String(Math.round((ew?.requirementsMs??18e5)/1e3))),[eC,eM]=(0,i.useState)(String(Math.round((ew?.researchMs??18e5)/1e3))),[eN,eI]=(0,i.useState)(String(Math.round((ew?.planMs??18e5)/1e3))),[eT,eA]=(0,i.useState)(String(Math.round((ew?.implementMs??18e5)/1e3))),[eV,eW]=(0,i.useState)(String(Math.round((ew?.mergeMs??18e5)/1e3))),eH=e.workflow.analyzeRepoTimeouts,[eO,eq]=(0,i.useState)(String(Math.round((eH?.analyzeMs??6e5)/1e3))),eG=e.interactiveAgent??{enabled:!0,autoTimeoutMinutes:15,maxConcurrentSessions:3},[eU,e$]=(0,i.useState)(eG.enabled),[eZ,eX]=(0,i.useState)(String(eG.autoTimeoutMinutes)),[eY,eJ]=(0,i.useState)(String(eG.maxConcurrentSessions)),eQ=e.fabLayout??{swapPosition:!1},[e0,e1]=(0,i.useState)(eQ.swapPosition),[e3,e2]=(0,i.useState)(e.notifications.inApp.enabled),[e5,e4]=(0,i.useState)({...e.notifications.events}),[e8,e6]=(0,i.useState)({...M}),e9=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",e7=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",te=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"",tt=null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):"",ti=ew?.analyzeMs!=null?String(Math.round(ew.analyzeMs/1e3)):"",tn=ew?.requirementsMs!=null?String(Math.round(ew.requirementsMs/1e3)):"",ts=ew?.researchMs!=null?String(Math.round(ew.researchMs/1e3)):"",ta=ew?.planMs!=null?String(Math.round(ew.planMs/1e3)):"",tl=ew?.implementMs!=null?String(Math.round(ew.implementMs/1e3)):"",tr=ew?.mergeMs!=null?String(Math.round(ew.mergeMs/1e3)):"",to=eH?.analyzeMs!=null?String(Math.round(eH.analyzeMs/1e3)):"";function tc(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function td(e){if(void 0===e)return;let t=tc(e);return null!=t?1e3*t:void 0}function tu(e={}){let t=tc(e.ciTimeout??em),i=e.autoArchiveEnabled??eo,n=parseInt(e.autoArchiveDelay??ed,10);return{workflow:{openPrOnImplementationComplete:e.openPr??V,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??O,allowPrd:e.allowPrd??G,allowPlan:e.allowPlan??$,allowMerge:e.allowMerge??X},enableEvidence:e.enableEvidence??J,commitEvidence:e.commitEvidence??ee,ciWatchEnabled:e.ciWatchEnabled??ei,hideCiStatus:e.hideCiStatus??es,defaultFastMode:e.defaultFastMode??el,autoArchiveDelayMinutes:i?Number.isNaN(n)||n<1?10:n:0,ciMaxFixAttempts:tc(e.ciMaxFix??eg),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:tc(e.ciLogMax??ef),ciWatchPollIntervalSeconds:tc(e.ciPollInterval??ev),stageTimeouts:{analyzeMs:td(e.analyzeTimeout??ej),requirementsMs:td(e.requirementsTimeout??eS),researchMs:td(e.researchTimeout??eC),planMs:td(e.planTimeout??eN),implementMs:td(e.implementTimeout??eT),mergeMs:td(e.mergeTimeout??eV)},analyzeRepoTimeouts:{analyzeMs:td(e.analyzeRepoTimeout??eO)}}}}function tg(e={}){return{notifications:{inApp:{enabled:e.inApp??e3},events:e.events??e5}}}let[th,tm]=(0,i.useState)("agent");(0,i.useEffect)(()=>{let e=eE.map(e=>document.getElementById(`section-${e.id}`)).filter(Boolean);if(0===e.length)return;let t=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&tm(t.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let i of e)t.observe(i);return()=>t.disconnect()},[]);let tp=(0,i.useCallback)(e=>{let t=document.getElementById(`section-${e}`);t&&(t.scrollIntoView({behavior:"smooth",block:"start"}),t.style.animation="none",t.offsetHeight,t.style.animation="section-flash 1s ease-out")},[]);return(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl",children:[(0,t.jsx)("div",{className:"bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-10 grid grid-cols-1 gap-x-5 pt-6 pb-4 backdrop-blur lg:grid-cols-[1fr_280px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:m("settings.title")}),(0,t.jsxs)("span",{className:"relative h-4 w-16",children:[(0,t.jsx)("span",{className:(0,y.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",p?"opacity-100":"opacity-0"),children:m("settings.saving")}),(0,t.jsxs)("span",{className:(0,y.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",S&&!p?"opacity-100":"opacity-0"),children:[(0,t.jsx)(n.Check,{className:"h-3 w-3"}),m("settings.saved")]})]}),(0,t.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:eE.map(e=>{let i=e.icon,n=th===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>tp(e.id),className:(0,y.cn)("flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-[11px] transition-all",n?"bg-accent text-foreground font-medium":"text-muted-foreground/60 hover:text-foreground hover:bg-accent/50"),children:[(0,t.jsx)(i,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:m(e.labelKey)})]},e.id)})})]})}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)("div",{id:"section-language",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:(0,t.jsx)(W,{language:e.user?.preferredLanguage??I.Language.English})}),(0,t.jsxs)("div",{id:"section-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsx)(eB,{icon:s.Bot,title:m("settings.agent.sectionTitle"),description:m("settings.agent.sectionDescription"),testId:"agent-settings-section",children:(0,t.jsx)(eR,{label:m("settings.agent.agentAndModel"),description:m("settings.agent.agentAndModelDescription"),htmlFor:"agent-model-picker",children:(0,t.jsx)(_.AgentModelPicker,{initialAgentType:T,initialModel:e.models.default,mode:"settings",onAgentModelChange:e=>A(e),className:"w-55"})})}),(0,t.jsx)(eK,{links:[{label:m("settings.agent.links.agentSystem"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/agent-system.md"},{label:m("settings.agent.links.addingAgents"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/adding-agents.md"},{label:m("settings.agent.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:m("settings.agent.hint")})]}),(0,t.jsxs)("div",{id:"section-environment",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:a.Terminal,title:m("settings.environment.sectionTitle"),description:m("settings.environment.sectionDescription"),testId:"environment-settings-section",children:[(0,t.jsx)(eR,{label:m("settings.environment.defaultEditor"),description:m("settings.environment.defaultEditorDescription"),htmlFor:"default-editor",children:(0,t.jsxs)(C.Select,{value:D,onValueChange:e=>{P(e),k({environment:{defaultEditor:e,shellPreference:E,terminalPreference:z}})},children:[(0,t.jsx)(C.SelectTrigger,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(C.SelectValue,{})}),(0,t.jsx)(C.SelectContent,{children:eF.map(e=>{var i;let n=(i=e.value)&&i in L?L[i]:F;return(0,t.jsx)(C.SelectItem,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(n,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)(eR,{label:m("settings.environment.shell"),description:m("settings.environment.shellDescription"),htmlFor:"shell-preference",children:(0,t.jsxs)(C.Select,{value:E,onValueChange:e=>{R(e),k({environment:{defaultEditor:D,shellPreference:e,terminalPreference:z}})},children:[(0,t.jsx)(C.SelectTrigger,{id:"shell-preference","data-testid":"shell-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(C.SelectValue,{})}),(0,t.jsx)(C.SelectContent,{children:eP.map(e=>(0,t.jsx)(C.SelectItem,{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)(eR,{label:m("settings.environment.terminal"),description:m("settings.environment.terminalDescription"),htmlFor:"terminal-preference",children:(0,t.jsxs)(C.Select,{value:z,onValueChange:e=>{B(e),k({environment:{defaultEditor:D,shellPreference:E,terminalPreference:e}})},children:[(0,t.jsx)(C.SelectTrigger,{id:"terminal-preference","data-testid":"terminal-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(C.SelectValue,{})}),(0,t.jsx)(C.SelectContent,{children:K.map(e=>(0,t.jsx)(C.SelectItem,{value:e.id,children:e.name},e.id))})]})})]}),(0,t.jsx)(eK,{links:[{label:m("settings.environment.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:m("settings.environment.hint")})]}),(0,t.jsxs)("div",{id:"section-workflow",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:l.GitBranch,title:m("settings.workflow.title"),description:m("settings.workflow.sectionDescription"),testId:"workflow-settings-section",children:[(0,t.jsx)(ez,{label:m("settings.workflow.defaultFastMode"),description:m("settings.workflow.defaultFastModeDescription"),id:"default-fast-mode",testId:"switch-default-fast-mode",checked:el,onChange:e=>{er(e),k(tu({defaultFastMode:e}))}}),(0,t.jsx)(e_,{children:m("settings.workflow.subsections.approve")}),(0,t.jsx)(ez,{label:m("settings.workflow.autoApprovePrd"),description:m("settings.workflow.autoApprovePrdDescription"),id:"allow-prd",testId:"switch-allow-prd",checked:G,onChange:e=>{U(e),k(tu({allowPrd:e}))}}),(0,t.jsx)(ez,{label:m("settings.workflow.autoApprovePlan"),description:m("settings.workflow.autoApprovePlanDescription"),id:"allow-plan",testId:"switch-allow-plan",checked:$,onChange:e=>{Z(e),k(tu({allowPlan:e}))}}),(0,t.jsx)(ez,{label:m("settings.workflow.autoApproveMerge"),description:m("settings.workflow.autoApproveMergeDescription"),id:"allow-merge",testId:"switch-allow-merge",checked:X,onChange:e=>{Y(e),k(tu({allowMerge:e}))}}),(0,t.jsx)(e_,{children:m("settings.workflow.subsections.evidence")}),(0,t.jsx)(ez,{label:m("settings.workflow.collectEvidence"),description:m("settings.workflow.collectEvidenceDescription"),id:"enable-evidence",testId:"switch-enable-evidence",checked:J,onChange:e=>{Q(e),e?k(tu({enableEvidence:e})):(et(!1),k(tu({enableEvidence:e,commitEvidence:!1})))}}),(0,t.jsx)(ez,{label:m("settings.workflow.addEvidenceToPr"),description:m("settings.workflow.addEvidenceToPrDescription"),id:"commit-evidence",testId:"switch-commit-evidence",checked:ee,disabled:!J||!V,onChange:e=>{et(e),k(tu({commitEvidence:e}))}}),(0,t.jsx)(e_,{children:m("settings.workflow.subsections.git")}),(0,t.jsx)(ez,{label:m("settings.workflow.pushOnComplete"),description:m("settings.workflow.pushOnCompleteDescription"),id:"push-on-complete",testId:"switch-push-on-complete",checked:O,onChange:e=>{q(e),k(tu({pushOnComplete:e}))}}),(0,t.jsx)(ez,{label:m("settings.workflow.openPrOnComplete"),description:m("settings.workflow.openPrOnCompleteDescription"),id:"open-pr",testId:"switch-open-pr",checked:V,onChange:e=>{H(e),e?k(tu({openPr:e})):(et(!1),k(tu({openPr:e,commitEvidence:!1})))}}),(0,t.jsx)(ez,{label:m("settings.workflow.watchCiAfterPush"),description:m("settings.workflow.watchCiAfterPushDescription"),id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:ei,onChange:e=>{en(e),k(tu({ciWatchEnabled:e}))}}),(0,t.jsx)(e_,{children:"Archive"}),(0,t.jsx)(ez,{label:"Auto-archive completed",description:"Automatically archive features after they reach the completed state",id:"auto-archive-enabled",testId:"switch-auto-archive-enabled",checked:eo,onChange:e=>{ec(e),k(tu({autoArchiveEnabled:e}))}}),(0,t.jsx)(eR,{label:"Archive delay",description:"Minutes to wait after completion before archiving (1–1440)",htmlFor:"auto-archive-delay",children:(0,t.jsx)(eL,{id:"auto-archive-delay",testId:"input-auto-archive-delay",value:ed,placeholder:"10",min:1,max:1440,suffix:"min",onChange:e=>{eu(e)},onBlur:()=>{if(!eo)return;let e=parseInt(ed,10),t=Number.isNaN(e)?10:Math.min(1440,Math.max(1,e));eu(String(t)),k(tu({autoArchiveDelay:String(t)}))}})})]}),(0,t.jsx)(eK,{links:[{label:m("settings.workflow.links.approvalGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:m("settings.workflow.links.pushAndPrFlags"),href:"https://github.com/shep-ai/shep/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:m("settings.workflow.hint")})]}),(0,t.jsxs)("div",{id:"section-ci",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:r.Activity,title:m("settings.ci.title"),description:m("settings.ci.description"),testId:"ci-settings-section",children:[(0,t.jsx)(eR,{label:m("settings.ci.maxFixAttempts"),description:m("settings.ci.maxFixAttemptsDescription"),htmlFor:"ci-max-fix",children:(0,t.jsx)(eL,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:eg,onChange:eh,onBlur:()=>{eg!==e9&&k(tu({ciMaxFix:eg}))},min:1,max:10})}),(0,t.jsx)(eR,{label:m("settings.ci.watchTimeout"),description:m("settings.ci.watchTimeoutDescription"),htmlFor:"ci-timeout",children:(0,t.jsx)(eL,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:em,onChange:ep,onBlur:()=>{em!==e7&&k(tu({ciTimeout:em}))},min:30,step:30,suffix:"sec"})}),(0,t.jsx)(eR,{label:m("settings.ci.maxLogSize"),description:m("settings.ci.maxLogSizeDescription"),htmlFor:"ci-log-max",children:(0,t.jsx)(eL,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:ef,onChange:ex,onBlur:()=>{ef!==te&&k(tu({ciLogMax:ef}))},min:1e3,step:5e3,suffix:"chars"})}),(0,t.jsx)(eR,{label:m("settings.ci.pollInterval"),description:m("settings.ci.pollIntervalDescription"),htmlFor:"ci-poll-interval",children:(0,t.jsx)(eL,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:ev,onChange:eb,onBlur:()=>{ev!==tt&&k(tu({ciPollInterval:ev}))},min:5,step:5,suffix:"sec"})}),(0,t.jsx)(ez,{label:m("settings.ci.hideCiStatus"),description:m("settings.ci.hideCiStatusDescription"),id:"hide-ci-status",testId:"switch-hide-ci-status",checked:es,onChange:e=>{ea(e),k(tu({hideCiStatus:e}))}})]}),(0,t.jsx)(eK,{links:[{label:m("settings.ci.links.cicdPipeline"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/cicd.md"},{label:m("settings.ci.links.ciSecurityGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/003-cicd-security-gates/spec.md"}],children:m("settings.ci.hint")})]}),(0,t.jsxs)("div",{id:"section-stage-timeouts",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:x.Timer,title:m("settings.stageTimeouts.title"),description:m("settings.stageTimeouts.description"),testId:"stage-timeouts-settings-section",children:[(0,t.jsx)(e_,{children:m("settings.stageTimeouts.subsections.featureAgent")}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.analyze"),description:m("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze",children:(0,t.jsx)(eD,{id:"timeout-analyze",testId:"timeout-analyze-input",value:ej,onChange:ey,onBlur:()=>{ej!==ti&&k(tu({analyzeTimeout:ej}))},defaultSeconds:1800})}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.requirements"),description:m("settings.stageTimeouts.requirementsDescription"),htmlFor:"timeout-requirements",children:(0,t.jsx)(eD,{id:"timeout-requirements",testId:"timeout-requirements-input",value:eS,onChange:ek,onBlur:()=>{eS!==tn&&k(tu({requirementsTimeout:eS}))},defaultSeconds:1800})}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.research"),description:m("settings.stageTimeouts.researchDescription"),htmlFor:"timeout-research",children:(0,t.jsx)(eD,{id:"timeout-research",testId:"timeout-research-input",value:eC,onChange:eM,onBlur:()=>{eC!==ts&&k(tu({researchTimeout:eC}))},defaultSeconds:1800})}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.plan"),description:m("settings.stageTimeouts.planDescription"),htmlFor:"timeout-plan",children:(0,t.jsx)(eD,{id:"timeout-plan",testId:"timeout-plan-input",value:eN,onChange:eI,onBlur:()=>{eN!==ta&&k(tu({planTimeout:eN}))},defaultSeconds:1800})}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.implement"),description:m("settings.stageTimeouts.implementDescription"),htmlFor:"timeout-implement",children:(0,t.jsx)(eD,{id:"timeout-implement",testId:"timeout-implement-input",value:eT,onChange:eA,onBlur:()=>{eT!==tl&&k(tu({implementTimeout:eT}))},defaultSeconds:1800})}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.merge"),description:m("settings.stageTimeouts.mergeDescription"),htmlFor:"timeout-merge",children:(0,t.jsx)(eD,{id:"timeout-merge",testId:"timeout-merge-input",value:eV,onChange:eW,onBlur:()=>{eV!==tr&&k(tu({mergeTimeout:eV}))},defaultSeconds:1800})}),(0,t.jsx)(e_,{children:m("settings.stageTimeouts.subsections.analyzeRepoAgent")}),(0,t.jsx)(eR,{label:m("settings.stageTimeouts.analyze"),description:m("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze-repo",children:(0,t.jsx)(eD,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:eO,onChange:eq,onBlur:()=>{eO!==to&&k(tu({analyzeRepoTimeout:eO}))},defaultSeconds:600})})]}),(0,t.jsx)(eK,{children:m("settings.stageTimeouts.hint")})]}),(0,t.jsxs)("div",{id:"section-notifications",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:c,title:m("settings.notifications.title"),description:m("settings.notifications.sectionDescription"),testId:"notification-settings-section",children:[(0,t.jsx)(e_,{children:m("settings.notifications.channels")}),(0,t.jsx)(ez,{label:m("settings.notifications.inAppLabel"),description:m("settings.notifications.inAppDescription"),id:"notif-in-app",testId:"switch-in-app",checked:e3,onChange:e=>{e2(e),k(tg({inApp:e}))}}),(0,t.jsx)(e_,{children:m("settings.notifications.subsections.agentEvents")}),(0,t.jsx)(ez,{label:m("settings.notifications.events.agentStarted"),id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:e5.agentStarted,onChange:e=>{let t={...e5,agentStarted:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.phaseCompleted"),id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:e5.phaseCompleted,onChange:e=>{let t={...e5,phaseCompleted:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.waitingApproval"),id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:e5.waitingApproval,onChange:e=>{let t={...e5,waitingApproval:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.agentCompleted"),id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:e5.agentCompleted,onChange:e=>{let t={...e5,agentCompleted:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.agentFailed"),id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:e5.agentFailed,onChange:e=>{let t={...e5,agentFailed:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(e_,{children:m("settings.notifications.subsections.pullRequestEvents")}),(0,t.jsx)(ez,{label:m("settings.notifications.events.prMerged"),id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:e5.prMerged,onChange:e=>{let t={...e5,prMerged:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.prClosed"),id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:e5.prClosed,onChange:e=>{let t={...e5,prClosed:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.prChecksPassed"),id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:e5.prChecksPassed,onChange:e=>{let t={...e5,prChecksPassed:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.prChecksFailed"),id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:e5.prChecksFailed,onChange:e=>{let t={...e5,prChecksFailed:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.prBlocked"),id:"notif-event-prBlocked",testId:"switch-event-prBlocked",checked:e5.prBlocked,onChange:e=>{let t={...e5,prBlocked:e};e4(t),k(tg({events:t}))}}),(0,t.jsx)(ez,{label:m("settings.notifications.events.mergeReviewReady"),id:"notif-event-mergeReviewReady",testId:"switch-event-mergeReviewReady",checked:e5.mergeReviewReady,onChange:e=>{let t={...e5,mergeReviewReady:e};e4(t),k(tg({events:t}))}})]}),(0,t.jsx)(eK,{links:[{label:m("settings.notifications.links.notificationSystem"),href:"https://github.com/shep-ai/shep/blob/main/specs/021-agent-notifications/spec.yaml"}],children:m("settings.notifications.hint")})]}),(0,t.jsxs)("div",{id:"section-feature-flags",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:d,title:m("settings.featureFlags.title"),description:m("settings.featureFlags.sectionDescription"),badge:m("settings.featureFlags.badge"),testId:"feature-flags-settings-section",children:[(0,t.jsx)(ez,{label:m("settings.featureFlags.skills"),description:m("settings.featureFlags.skillsDescription"),id:"flag-skills",testId:"switch-flag-skills",checked:e8.skills,onChange:e=>{let t={...e8,skills:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.deployments"),description:m("settings.featureFlags.deploymentsDescription"),id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:e8.envDeploy,onChange:e=>{let t={...e8,envDeploy:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.debug"),description:m("settings.featureFlags.debugDescription"),id:"flag-debug",testId:"switch-flag-debug",checked:e8.debug,onChange:e=>{let t={...e8,debug:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.githubImport"),description:m("settings.featureFlags.githubImportDescription"),id:"flag-githubImport",testId:"switch-flag-githubImport",checked:e8.githubImport,onChange:e=>{let t={...e8,githubImport:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.adoptBranch"),description:m("settings.featureFlags.adoptBranchDescription"),id:"flag-adoptBranch",testId:"switch-flag-adoptBranch",checked:e8.adoptBranch,onChange:e=>{let t={...e8,adoptBranch:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.gitRebaseSync"),description:m("settings.featureFlags.gitRebaseSyncDescription"),id:"flag-gitRebaseSync",testId:"switch-flag-gitRebaseSync",checked:e8.gitRebaseSync,onChange:e=>{let t={...e8,gitRebaseSync:e};e6(t),k({featureFlags:t})}}),(0,t.jsx)(ez,{label:m("settings.featureFlags.reactFileManager"),description:m("settings.featureFlags.reactFileManagerDescription"),id:"flag-reactFileManager",testId:"switch-flag-reactFileManager",checked:e8.reactFileManager,onChange:e=>{let t={...e8,reactFileManager:e};e6(t),k({featureFlags:t})}})]}),(0,t.jsx)(eK,{children:m("settings.featureFlags.hint")})]}),(0,t.jsxs)("div",{id:"section-interactive-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:v.MessageSquare,title:m("settings.interactiveAgent.title"),description:m("settings.interactiveAgent.description"),testId:"interactive-agent-settings-section",children:[(0,t.jsx)(ez,{label:m("settings.interactiveAgent.enableChatTab"),description:m("settings.interactiveAgent.enableChatTabDescription"),id:"interactive-agent-enabled",testId:"switch-interactive-agent-enabled",checked:eU,onChange:e=>{e$(e),k({interactiveAgent:{enabled:e,autoTimeoutMinutes:parseInt(eZ,10)||15,maxConcurrentSessions:parseInt(eY,10)||3}})}}),(0,t.jsx)(eR,{label:m("settings.interactiveAgent.autoTimeout"),description:m("settings.interactiveAgent.autoTimeoutDescription"),htmlFor:"interactive-agent-timeout",children:(0,t.jsx)(eL,{id:"interactive-agent-timeout",testId:"input-interactive-agent-timeout",value:eZ,placeholder:"15",min:1,max:120,suffix:"min",onChange:eX,onBlur:()=>{let e=parseInt(eZ,10),t=Number.isNaN(e)?15:Math.min(120,Math.max(1,e));eX(String(t)),k({interactiveAgent:{enabled:eU,autoTimeoutMinutes:t,maxConcurrentSessions:parseInt(eY,10)||3}})}})}),(0,t.jsx)(eR,{label:m("settings.interactiveAgent.maxConcurrentSessions"),description:m("settings.interactiveAgent.maxConcurrentSessionsDescription"),htmlFor:"interactive-agent-sessions",children:(0,t.jsx)(eL,{id:"interactive-agent-sessions",testId:"input-interactive-agent-sessions",value:eY,placeholder:"3",min:1,max:10,onChange:eJ,onBlur:()=>{let e=parseInt(eY,10),t=Number.isNaN(e)?3:Math.min(10,Math.max(1,e));eJ(String(t)),k({interactiveAgent:{enabled:eU,autoTimeoutMinutes:parseInt(eZ,10)||15,maxConcurrentSessions:t}})}})})]}),(0,t.jsx)(eK,{children:m("settings.interactiveAgent.hint")})]}),(0,t.jsxs)("div",{id:"section-fab-layout",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsx)(eB,{icon:b,title:m("settings.fabLayout.title"),description:m("settings.fabLayout.description"),testId:"fab-layout-settings-section",children:(0,t.jsx)(ez,{label:m("settings.fabLayout.swapPosition"),description:m("settings.fabLayout.swapPositionDescription"),id:"fab-swap-position",testId:"switch-fab-swap-position",checked:e0,onChange:e=>{e1(e),k({fabLayout:{swapPosition:e}})}})}),(0,t.jsx)(eK,{children:m("settings.fabLayout.hint")})]}),(0,t.jsxs)("div",{id:"section-database",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(eB,{icon:u,title:m("settings.database.title"),description:m("settings.database.sectionDescription"),testId:"database-settings-section",children:[(0,t.jsx)(eR,{label:m("settings.database.location"),description:m("settings.database.locationDescription"),children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:o})}),(0,t.jsx)(eR,{label:m("settings.database.size"),children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:g})})]}),(0,t.jsx)(eK,{links:[{label:m("settings.database.links.settingsService"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/settings-service.md"},{label:m("settings.database.links.settingsSpec"),href:"https://github.com/shep-ai/shep/blob/main/specs/005-global-settings-service/spec.md"}],children:m("settings.database.hint")})]})]})]})}e.s(["SettingsPageClient",()=>eV],41952)}]);