@shepai/cli 1.116.0-pr367.8e10c48 → 1.116.1

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 (382) hide show
  1. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +14 -0
  2. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/index.d.ts +0 -2
  4. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts +2 -1
  6. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/features/cleanup-feature-worktree.use-case.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/features/cleanup-feature-worktree.use-case.js +6 -1
  9. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  10. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +30 -2
  12. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +1 -1
  13. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/di/container.js +4 -20
  15. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +6 -1
  17. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts +12 -1
  18. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +98 -26
  20. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +13 -1
  22. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.js +1 -0
  24. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  25. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +18 -1
  26. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.d.ts.map +1 -1
  27. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.js +1 -0
  28. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts.map +1 -1
  29. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +1 -0
  30. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/implement.node.d.ts.map +1 -1
  31. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/implement.node.js +1 -0
  32. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.d.ts.map +1 -1
  33. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.js +13 -1
  34. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts +4 -0
  35. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +9 -17
  37. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +2 -0
  38. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  39. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +8 -4
  40. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +7 -4
  41. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.d.ts.map +1 -1
  42. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.js +1 -0
  43. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/validate.node.d.ts.map +1 -1
  44. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/validate.node.js +1 -0
  45. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -0
  46. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  47. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +71 -1
  48. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts +1 -1
  49. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +5 -3
  51. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -1
  52. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +3 -1
  53. package/dist/packages/core/src/infrastructure/services/ide-launchers/json-driven-ide-launcher.service.d.ts.map +1 -1
  54. package/dist/packages/core/src/infrastructure/services/ide-launchers/json-driven-ide-launcher.service.js +5 -1
  55. package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.js +12 -0
  57. package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
  58. package/dist/src/presentation/cli/commands/ui.command.js +0 -15
  59. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  61. package/dist/src/presentation/web/dev-server.js +0 -20
  62. package/dist/tsconfig.build.tsbuildinfo +1 -1
  63. package/package.json +1 -1
  64. package/web/.next/BUILD_ID +1 -1
  65. package/web/.next/app-path-routes-manifest.json +1 -5
  66. package/web/.next/build-manifest.json +6 -6
  67. package/web/.next/fallback-build-manifest.json +2 -2
  68. package/web/.next/prerender-manifest.json +3 -3
  69. package/web/.next/required-server-files.js +2 -2
  70. package/web/.next/required-server-files.json +2 -2
  71. package/web/.next/routes-manifest.json +0 -24
  72. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  73. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  74. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  77. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  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/build-manifest.json +4 -4
  81. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +26 -26
  82. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  85. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  86. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  89. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  90. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  93. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  94. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  97. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +26 -26
  98. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  101. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  102. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  103. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  105. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  106. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  109. package/web/.next/server/app/_global-error.html +2 -2
  110. package/web/.next/server/app/_global-error.rsc +1 -1
  111. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  112. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  113. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  114. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  115. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  116. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  117. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  118. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  119. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  121. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  122. package/web/.next/server/app/settings/page/build-manifest.json +4 -4
  123. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  124. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  125. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  127. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  128. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  129. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  131. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  132. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  133. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  134. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  135. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  136. package/web/.next/server/app/version/page.js.nft.json +1 -1
  137. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app-paths-manifest.json +1 -5
  139. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  140. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  141. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +1 -1
  143. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +1 -1
  145. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +1 -1
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +3 -0
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +1 -0
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js +3 -0
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js.map +1 -0
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  171. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/{node_modules__pnpm_747b43ac._.js → _1bb131c4._.js} +2 -2
  173. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -0
  174. package/web/.next/server/chunks/ssr/_273d4632._.js +3 -0
  175. package/web/.next/server/chunks/ssr/_273d4632._.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/_6d26a08f._.js +3 -0
  177. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  179. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/_8e762bfa._.js +3 -0
  181. package/web/.next/server/chunks/ssr/{_28862ed0._.js.map → _8e762bfa._.js.map} +1 -1
  182. package/web/.next/server/chunks/ssr/{_383572e0._.js → _9f6e3d20._.js} +2 -2
  183. package/web/.next/server/chunks/ssr/_9f6e3d20._.js.map +1 -0
  184. package/web/.next/server/chunks/ssr/_a68d7e1c._.js +9 -0
  185. package/web/.next/server/chunks/ssr/_a68d7e1c._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/_b5fc318a._.js +3 -0
  187. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +1 -0
  188. package/web/.next/server/chunks/ssr/_c1fbab88._.js +3 -0
  189. package/web/.next/server/chunks/ssr/_c1fbab88._.js.map +1 -0
  190. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  191. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/_f4d222d6._.js +1 -1
  193. package/web/.next/server/chunks/ssr/_f5316e67._.js +3 -0
  194. package/web/.next/server/chunks/ssr/_f5316e67._.js.map +1 -0
  195. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  196. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +2 -2
  204. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +1 -1
  205. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  206. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  207. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  208. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  210. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +2 -2
  212. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +1 -1
  213. package/web/.next/server/middleware-build-manifest.js +4 -4
  214. package/web/.next/server/pages/500.html +2 -2
  215. package/web/.next/server/server-reference-manifest.js +1 -1
  216. package/web/.next/server/server-reference-manifest.json +32 -54
  217. package/web/.next/static/chunks/17fd217453792496.js +11 -0
  218. package/web/.next/static/chunks/303a1217006489b9.js +1 -0
  219. package/web/.next/static/chunks/33479aee057faf05.js +1 -0
  220. package/web/.next/static/chunks/{c6dc0749ac370da4.js → 3375766cc7dda1d8.js} +2 -2
  221. package/web/.next/static/chunks/{f60771797b58531f.js → 35bf7817ea1c468d.js} +1 -1
  222. package/web/.next/static/chunks/3a806cf059241bc9.js +1 -0
  223. package/web/.next/static/chunks/{604d36c352fff6c0.js → 3c962e81416806a3.js} +2 -2
  224. package/web/.next/static/chunks/3fc8dae693118412.js +1 -0
  225. package/web/.next/static/chunks/57b45edf86522369.css +1 -0
  226. package/web/.next/static/chunks/5d83ac35ca137033.js +1 -0
  227. package/web/.next/static/chunks/619af41a8d3232e5.js +1 -0
  228. package/web/.next/static/chunks/{98e3a7cf58fc912a.js → 672e3da3ad26005b.js} +1 -1
  229. package/web/.next/static/chunks/{e510518c9ca6e844.js → 814f40e65ab8e09e.js} +1 -1
  230. package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
  231. package/web/.next/static/chunks/b1f3c0e8e9872ef8.js +1 -0
  232. package/web/.next/static/chunks/{51ca7e4cad588da4.js → b5357e9cc8668be7.js} +1 -1
  233. package/web/.next/static/chunks/{385710675a1d06c9.js → b830ce63d018922d.js} +1 -1
  234. package/web/.next/static/chunks/ed3a602003bcb31b.js +1 -0
  235. package/web/.next/static/chunks/fcde0cbb2976b933.js +1 -0
  236. package/web/.next/static/chunks/{turbopack-b1685b5f87ad1d60.js → turbopack-426d9bc2450816ba.js} +1 -1
  237. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts +0 -41
  238. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts.map +0 -1
  239. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.js +0 -14
  240. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts +0 -65
  241. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts.map +0 -1
  242. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.js +0 -10
  243. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts +0 -36
  244. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts.map +0 -1
  245. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.js +0 -148
  246. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts +0 -75
  247. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts.map +0 -1
  248. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.js +0 -372
  249. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts +0 -82
  250. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts.map +0 -1
  251. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.js +0 -192
  252. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts +0 -3
  253. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts.map +0 -1
  254. package/dist/src/presentation/web/app/actions/load-webhook-status.js +0 -19
  255. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts +0 -9
  256. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts.map +0 -1
  257. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.js +0 -27
  258. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts +0 -17
  259. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts.map +0 -1
  260. package/dist/src/presentation/web/app/api/webhooks/github/route.js +0 -70
  261. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts +0 -9
  262. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts.map +0 -1
  263. package/dist/src/presentation/web/app/api/webhooks/status/route.js +0 -26
  264. package/dist/src/presentation/web/app/webhooks/page.d.ts +0 -4
  265. package/dist/src/presentation/web/app/webhooks/page.d.ts.map +0 -1
  266. package/dist/src/presentation/web/app/webhooks/page.js +0 -9
  267. package/dist/src/presentation/web/components/features/webhooks/types.d.ts +0 -32
  268. package/dist/src/presentation/web/components/features/webhooks/types.d.ts.map +0 -1
  269. package/dist/src/presentation/web/components/features/webhooks/types.js +0 -1
  270. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts +0 -6
  271. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts.map +0 -1
  272. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.js +0 -38
  273. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts +0 -9
  274. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts.map +0 -1
  275. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.js +0 -69
  276. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts +0 -7
  277. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts.map +0 -1
  278. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.js +0 -11
  279. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts +0 -9
  280. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts.map +0 -1
  281. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.js +0 -31
  282. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts +0 -6
  283. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts.map +0 -1
  284. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.js +0 -21
  285. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts +0 -9
  286. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts.map +0 -1
  287. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.js +0 -56
  288. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts +0 -6
  289. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts.map +0 -1
  290. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.js +0 -39
  291. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts +0 -8
  292. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts.map +0 -1
  293. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.js +0 -59
  294. package/web/.next/server/app/api/webhooks/deliveries/route/app-paths-manifest.json +0 -3
  295. package/web/.next/server/app/api/webhooks/deliveries/route/build-manifest.json +0 -11
  296. package/web/.next/server/app/api/webhooks/deliveries/route/server-reference-manifest.json +0 -4
  297. package/web/.next/server/app/api/webhooks/deliveries/route.js +0 -6
  298. package/web/.next/server/app/api/webhooks/deliveries/route.js.map +0 -5
  299. package/web/.next/server/app/api/webhooks/deliveries/route.js.nft.json +0 -1
  300. package/web/.next/server/app/api/webhooks/deliveries/route_client-reference-manifest.js +0 -2
  301. package/web/.next/server/app/api/webhooks/github/route/app-paths-manifest.json +0 -3
  302. package/web/.next/server/app/api/webhooks/github/route/build-manifest.json +0 -11
  303. package/web/.next/server/app/api/webhooks/github/route/server-reference-manifest.json +0 -4
  304. package/web/.next/server/app/api/webhooks/github/route.js +0 -6
  305. package/web/.next/server/app/api/webhooks/github/route.js.map +0 -5
  306. package/web/.next/server/app/api/webhooks/github/route.js.nft.json +0 -1
  307. package/web/.next/server/app/api/webhooks/github/route_client-reference-manifest.js +0 -2
  308. package/web/.next/server/app/api/webhooks/status/route/app-paths-manifest.json +0 -3
  309. package/web/.next/server/app/api/webhooks/status/route/build-manifest.json +0 -11
  310. package/web/.next/server/app/api/webhooks/status/route/server-reference-manifest.json +0 -4
  311. package/web/.next/server/app/api/webhooks/status/route.js +0 -6
  312. package/web/.next/server/app/api/webhooks/status/route.js.map +0 -5
  313. package/web/.next/server/app/api/webhooks/status/route.js.nft.json +0 -1
  314. package/web/.next/server/app/api/webhooks/status/route_client-reference-manifest.js +0 -2
  315. package/web/.next/server/app/webhooks/page/app-paths-manifest.json +0 -3
  316. package/web/.next/server/app/webhooks/page/build-manifest.json +0 -18
  317. package/web/.next/server/app/webhooks/page/next-font-manifest.json +0 -6
  318. package/web/.next/server/app/webhooks/page/react-loadable-manifest.json +0 -1
  319. package/web/.next/server/app/webhooks/page/server-reference-manifest.json +0 -35
  320. package/web/.next/server/app/webhooks/page.js +0 -16
  321. package/web/.next/server/app/webhooks/page.js.map +0 -5
  322. package/web/.next/server/app/webhooks/page.js.nft.json +0 -1
  323. package/web/.next/server/app/webhooks/page_client-reference-manifest.js +0 -2
  324. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js +0 -3
  325. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js.map +0 -1
  326. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js +0 -3
  327. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js.map +0 -1
  328. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js +0 -3
  329. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js.map +0 -1
  330. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js +0 -3
  331. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js.map +0 -1
  332. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js +0 -3
  333. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js.map +0 -1
  334. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js +0 -3
  335. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js.map +0 -1
  336. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js +0 -3
  337. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js.map +0 -1
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d847b7b._.js +0 -3
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d847b7b._.js.map +0 -1
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js +0 -3
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js.map +0 -1
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js +0 -4
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js.map +0 -1
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__a42f5a88._.js +0 -3
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__a42f5a88._.js.map +0 -1
  346. package/web/.next/server/chunks/ssr/_26b2c311._.js +0 -3
  347. package/web/.next/server/chunks/ssr/_26b2c311._.js.map +0 -1
  348. package/web/.next/server/chunks/ssr/_27dd06aa._.js +0 -3
  349. package/web/.next/server/chunks/ssr/_27dd06aa._.js.map +0 -1
  350. package/web/.next/server/chunks/ssr/_28862ed0._.js +0 -3
  351. package/web/.next/server/chunks/ssr/_383572e0._.js.map +0 -1
  352. package/web/.next/server/chunks/ssr/_809c53f6._.js +0 -9
  353. package/web/.next/server/chunks/ssr/_809c53f6._.js.map +0 -1
  354. package/web/.next/server/chunks/ssr/_9eea4c51._.js +0 -3
  355. package/web/.next/server/chunks/ssr/_9eea4c51._.js.map +0 -1
  356. package/web/.next/server/chunks/ssr/_a4899a76._.js +0 -3
  357. package/web/.next/server/chunks/ssr/_a4899a76._.js.map +0 -1
  358. package/web/.next/server/chunks/ssr/_b7eb93fc._.js +0 -4
  359. package/web/.next/server/chunks/ssr/_b7eb93fc._.js.map +0 -1
  360. package/web/.next/server/chunks/ssr/_e0a01382._.js +0 -3
  361. package/web/.next/server/chunks/ssr/_e0a01382._.js.map +0 -1
  362. package/web/.next/server/chunks/ssr/_f8b36e2c._.js +0 -3
  363. package/web/.next/server/chunks/ssr/_f8b36e2c._.js.map +0 -1
  364. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js +0 -3
  365. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js.map +0 -1
  366. package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js.map +0 -1
  367. package/web/.next/static/chunks/06b948216df083c1.js +0 -1
  368. package/web/.next/static/chunks/2bdc11361b8f2602.js +0 -1
  369. package/web/.next/static/chunks/31f35710932542ef.js +0 -1
  370. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  371. package/web/.next/static/chunks/4714eb891fa4fd81.js +0 -1
  372. package/web/.next/static/chunks/523340641468b5f2.js +0 -1
  373. package/web/.next/static/chunks/5f6161ceb4263319.js +0 -1
  374. package/web/.next/static/chunks/9a7361e2365b2d8e.js +0 -1
  375. package/web/.next/static/chunks/9af45e885bd4ccef.js +0 -1
  376. package/web/.next/static/chunks/bbfb591f6aaa7255.css +0 -1
  377. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  378. package/web/.next/static/chunks/e9621b096a69e4e8.js +0 -11
  379. package/web/.next/static/chunks/f644140e21b75f61.js +0 -1
  380. /package/web/.next/static/{kQ3LD6zhRbOzb0MYK2n5b → oySSHprbXXpmQhRjypXRR}/_buildManifest.js +0 -0
  381. /package/web/.next/static/{kQ3LD6zhRbOzb0MYK2n5b → oySSHprbXXpmQhRjypXRR}/_clientMiddlewareManifest.json +0 -0
  382. /package/web/.next/static/{kQ3LD6zhRbOzb0MYK2n5b → oySSHprbXXpmQhRjypXRR}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44229,e=>{"use strict";var t=e.i(93752);e.s(["Code",()=>t.default])},87889,e=>{"use strict";let t=(0,e.i(3645).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>t],87889)},93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},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])},16868,48306,80436,28267,86254,50032,42076,e=>{"use strict";var t=e.i(3645);let r=(0,t.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(["PaperclipIcon",()=>r],16868);var i=e.i(20314),s=e.i(31777);function n({className:e,...t}){return(0,i.jsx)("textarea",{"data-slot":"textarea",className:(0,s.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),...t})}e.s(["Textarea",()=>n],48306);var a=e.i(60253),l=e.i(15506),l=l,o=e.i(95230);e.s(["DownloadIcon",()=>o.default],80436);var o=o,c=e.i(2287),u=e.i(1693);e.s(["VisuallyHidden",0,u],28267);var u=u;let d=(0,t.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"}]]);var f=e.i(16298),f=f;let h=(0,t.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 p=e.i(93752),p=p;e.i(35364);let m=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),v=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function g(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 x=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]);function y(e,t){let r=new URLSearchParams({path:e,mimeType:t});return`/api/attachments/preview?${r.toString()}`}function b({name:e,size:t,mimeType:r,path:n,onRemove:b,loading:w=!1,disabled:k=!1}){let j,R,C=(j=e.lastIndexOf("."))>=0?e.slice(j).toLowerCase():"",N=m.has(C)?h:".pdf"===C?f.default:v.has(C)?p.default:d,T=".pdf"===C?"bg-red-50 text-red-600":m.has(C)?"bg-blue-50 text-blue-600":v.has(C)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600",A=(R=e.lastIndexOf("."))>=0&&x.has(e.slice(R).toLowerCase());return w?(0,i.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-md border",children:(0,i.jsx)(l.default,{className:"text-muted-foreground h-5 w-5 animate-spin"})}):A?(0,i.jsxs)(c.Dialog,{children:[(0,i.jsxs)("div",{className:"group relative",children:[(0,i.jsx)(c.DialogTrigger,{asChild:!0,children:(0,i.jsx)("img",{src:y(n,r),alt:e,title:e,className:"h-12 w-12 cursor-pointer rounded-md border object-cover transition-opacity hover:opacity-80"})}),!k&&(0,i.jsx)("button",{type:"button",onClick:b,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,i.jsx)(a.X,{className:"h-3 w-3"})})]}),(0,i.jsxs)(c.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,i.jsx)(u.Root,{children:(0,i.jsxs)(c.DialogTitle,{children:["Preview: ",e]})}),(0,i.jsx)("div",{className:"relative bg-black/90",children:(0,i.jsx)("img",{src:y(n,r),alt:e,className:"h-auto max-h-[70vh] w-full object-contain"})}),(0,i.jsxs)("div",{className:"bg-background flex items-center gap-3 px-4 py-3",children:[(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,i.jsx)("span",{className:"truncate text-sm font-medium",children:e}),(0,i.jsx)("span",{className:"text-muted-foreground text-xs",children:g(t)})]}),(0,i.jsx)("a",{href:y(n,r),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,i.jsx)(o.default,{className:"h-4 w-4"})})]})]})]}):(0,i.jsxs)("div",{className:"group relative flex items-center gap-2 rounded-full border py-1 pr-3 pl-2",children:[(0,i.jsx)("div",{className:(0,s.cn)("flex h-6 w-6 shrink-0 items-center justify-center rounded-full",T),children:(0,i.jsx)(N,{className:"h-3 w-3"})}),(0,i.jsx)("span",{className:"max-w-[120px] truncate text-sm",children:e}),(0,i.jsx)("span",{className:"text-muted-foreground text-xs",children:g(t)}),!k&&(0,i.jsx)("button",{type:"button",onClick:b,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,i.jsx)(a.X,{className:"h-3 w-3"})})]})}async function w(){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(["AttachmentChip",()=>b],86254),e.s([],50032),e.s(["pickFiles",()=>w],42076)},87342,e=>{"use strict";var t=e.i(79054),r=e.i(22528),i=e.i(5978),s=e.i(86874),n=e.i(20314);function a(e){let a=e+"CollectionProvider",[l,o]=(0,r.createContextScope)(a),[c,u]=l(a,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:r,children:i}=e,s=t.default.useRef(null),a=t.default.useRef(new Map).current;return(0,n.jsx)(c,{scope:r,itemMap:a,collectionRef:s,children:i})};d.displayName=a;let f=e+"CollectionSlot",h=(0,s.createSlot)(f),p=t.default.forwardRef((e,t)=>{let{scope:r,children:s}=e,a=u(f,r),l=(0,i.useComposedRefs)(t,a.collectionRef);return(0,n.jsx)(h,{ref:l,children:s})});p.displayName=f;let m=e+"CollectionItemSlot",v="data-radix-collection-item",g=(0,s.createSlot)(m),x=t.default.forwardRef((e,r)=>{let{scope:s,children:a,...l}=e,o=t.default.useRef(null),c=(0,i.useComposedRefs)(r,o),d=u(m,s);return t.default.useEffect(()=>(d.itemMap.set(o,{ref:o,...l}),()=>void d.itemMap.delete(o))),(0,n.jsx)(g,{...{[v]:""},ref:c,children:a})});return x.displayName=m,[{Provider:d,Slot:p,ItemSlot:x},function(r){let i=u(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=i.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${v}]`));return Array.from(i.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[i.collectionRef,i.itemMap])},o]}var l=new WeakMap;function o(e,t){var r,i;let s,n,a;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let l=(r=e,i=t,s=r.length,(a=(n=c(i))>=0?n:s+n)<0||a>=s?-1:a);return -1===l?void 0:e[l]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],l.set(this,!0)}set(e,t){return l.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let i,s=this.has(t),n=this.#e.length,a=c(e),l=a>=0?a:n+a,o=l<0||l>=n?-1:l;if(o===this.size||s&&o===this.size-1||-1===o)return this.set(t,r),this;let u=this.size+ +!s;a<0&&l++;let d=[...this.#e],f=!1;for(let e=l;e<u;e++)if(l===e){let n=d[e];d[e]===t&&(n=d[e+1]),s&&this.delete(t),i=this.get(n),this.set(t,r)}else{f||d[e-1]!==t||(f=!0);let r=d[f?e:e-1],s=i;i=this.get(r),this.delete(r),this.set(r,s)}return this}with(t,r,i){let s=new e(this);return s.insert(t,r,i),s}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let i=this.#e.indexOf(e);return -1===i?this:this.insert(i,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let i=this.#e.indexOf(e);return -1===i?this:this.insert(i+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=o(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=o(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return o(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let i=r+t;return i<0&&(i=0),i>=this.size&&(i=this.size-1),this.at(i)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let i=r+t;return i<0&&(i=0),i>=this.size&&(i=this.size-1),this.keyAt(i)}find(e,t){let r=0;for(let i of this){if(Reflect.apply(e,t,[i,r,this]))return i;r++}}findIndex(e,t){let r=0;for(let i of this){if(Reflect.apply(e,t,[i,r,this]))return r;r++}return -1}filter(t,r){let i=[],s=0;for(let e of this)Reflect.apply(t,r,[e,s,this])&&i.push(e),s++;return new e(i)}map(t,r){let i=[],s=0;for(let e of this)i.push([e[0],Reflect.apply(t,r,[e,s,this])]),s++;return new e(i)}reduce(...e){let[t,r]=e,i=0,s=r??this.at(0);for(let r of this)s=0===i&&1===e.length?r:Reflect.apply(t,this,[s,r,i,this]),i++;return s}reduceRight(...e){let[t,r]=e,i=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let s=this.at(r);i=r===this.size-1&&1===e.length?s:Reflect.apply(t,this,[i,s,r,this])}return i}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),i=this.get(r);t.set(r,i)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let i=new e,s=this.size-1;if(void 0===t)return i;t<0&&(t+=this.size),void 0!==r&&r>0&&(s=r-1);for(let e=t;e<=s;e++){let t=this.keyAt(e),r=this.get(t);i.set(t,r)}return i}every(e,t){let r=0;for(let i of this){if(!Reflect.apply(e,t,[i,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let i of this){if(Reflect.apply(e,t,[i,r,this]))return!0;r++}return!1}}),e.s(["createCollection",()=>a])},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},99105,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],99105)},13367,e=>{"use strict";var t=e.i(30090);e.s(["XCircle",()=>t.default])},68304,51080,e=>{"use strict";var t=e.i(20314),r=e.i(79054),i=e.i(91967),s=e.i(22528),n=e.i(87342),a=e.i(5978),l=e.i(13123),o=e.i(87620),c=e.i(29297),u=e.i(36589),d=e.i(66033),f="rovingFocusGroup.onEntryFocus",h={bubbles:!1,cancelable:!0},p="RovingFocusGroup",[m,v,g]=(0,n.createCollection)(p),[x,y]=(0,s.createContextScope)(p,[g]),[b,w]=x(p),k=r.forwardRef((e,r)=>(0,t.jsx)(m.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(m.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(j,{...e,ref:r})})}));k.displayName=p;var j=r.forwardRef((e,s)=>{let{__scopeRovingFocusGroup:n,orientation:l,loop:m=!1,dir:g,currentTabStopId:x,defaultCurrentTabStopId:y,onCurrentTabStopIdChange:w,onEntryFocus:k,preventScrollOnEntryFocus:j=!1,...R}=e,C=r.useRef(null),N=(0,a.useComposedRefs)(s,C),A=(0,d.useDirection)(g),[S,I]=(0,u.useControllableState)({prop:x,defaultProp:y??null,onChange:w,caller:p}),[M,D]=r.useState(!1),E=(0,c.useCallbackRef)(k),F=v(n),P=r.useRef(!1),[z,O]=r.useState(0);return r.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(f,E),()=>e.removeEventListener(f,E)},[E]),(0,t.jsx)(b,{scope:n,orientation:l,dir:A,loop:m,currentTabStopId:S,onItemFocus:r.useCallback(e=>I(e),[I]),onItemShiftTab:r.useCallback(()=>D(!0),[]),onFocusableItemAdd:r.useCallback(()=>O(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>O(e=>e-1),[]),children:(0,t.jsx)(o.Primitive.div,{tabIndex:M||0===z?-1:0,"data-orientation":l,...R,ref:N,style:{outline:"none",...e.style},onMouseDown:(0,i.composeEventHandlers)(e.onMouseDown,()=>{P.current=!0}),onFocus:(0,i.composeEventHandlers)(e.onFocus,e=>{let t=!P.current;if(e.target===e.currentTarget&&t&&!M){let t=new CustomEvent(f,h);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=F().filter(e=>e.focusable);T([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),j)}}P.current=!1}),onBlur:(0,i.composeEventHandlers)(e.onBlur,()=>D(!1))})})}),R="RovingFocusGroupItem",C=r.forwardRef((e,s)=>{let{__scopeRovingFocusGroup:n,focusable:a=!0,active:c=!1,tabStopId:u,children:d,...f}=e,h=(0,l.useId)(),p=u||h,g=w(R,n),x=g.currentTabStopId===p,y=v(n),{onFocusableItemAdd:b,onFocusableItemRemove:k,currentTabStopId:j}=g;return r.useEffect(()=>{if(a)return b(),()=>k()},[a,b,k]),(0,t.jsx)(m.ItemSlot,{scope:n,id:p,focusable:a,active:c,children:(0,t.jsx)(o.Primitive.span,{tabIndex:x?0:-1,"data-orientation":g.orientation,...f,ref:s,onMouseDown:(0,i.composeEventHandlers)(e.onMouseDown,e=>{a?g.onItemFocus(p):e.preventDefault()}),onFocus:(0,i.composeEventHandlers)(e.onFocus,()=>g.onItemFocus(p)),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var i;let s=(i=e.key,"rtl"!==r?i:"ArrowLeft"===i?"ArrowRight":"ArrowRight"===i?"ArrowLeft":i);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(s))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(s)))return N[s]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let s=y().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)s.reverse();else if("prev"===t||"next"===t){var r,i;"prev"===t&&s.reverse();let n=s.indexOf(e.currentTarget);s=g.loop?(r=s,i=n+1,r.map((e,t)=>r[(i+t)%r.length])):s.slice(n+1)}setTimeout(()=>T(s))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=j}):d})})});C.displayName=R;var N={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function T(e,t=!1){let r=document.activeElement;for(let i of e)if(i===r||(i.focus({preventScroll:t}),document.activeElement!==r))return}e.s(["Item",()=>C,"Root",()=>k,"createRovingFocusGroupScope",()=>y],51080);var A=e.i(85995),S="Tabs",[I,M]=(0,s.createContextScope)(S,[y]),D=y(),[E,F]=I(S),P=r.forwardRef((e,r)=>{let{__scopeTabs:i,value:s,onValueChange:n,defaultValue:a,orientation:c="horizontal",dir:f,activationMode:h="automatic",...p}=e,m=(0,d.useDirection)(f),[v,g]=(0,u.useControllableState)({prop:s,onChange:n,defaultProp:a??"",caller:S});return(0,t.jsx)(E,{scope:i,baseId:(0,l.useId)(),value:v,onValueChange:g,orientation:c,dir:m,activationMode:h,children:(0,t.jsx)(o.Primitive.div,{dir:m,"data-orientation":c,...p,ref:r})})});P.displayName=S;var z="TabsList",O=r.forwardRef((e,r)=>{let{__scopeTabs:i,loop:s=!0,...n}=e,a=F(z,i),l=D(i);return(0,t.jsx)(k,{asChild:!0,...l,orientation:a.orientation,dir:a.dir,loop:s,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":a.orientation,...n,ref:r})})});O.displayName=z;var L="TabsTrigger",K=r.forwardRef((e,r)=>{let{__scopeTabs:s,value:n,disabled:a=!1,...l}=e,c=F(L,s),u=D(s),d=$(c.baseId,n),f=G(c.baseId,n),h=n===c.value;return(0,t.jsx)(C,{asChild:!0,...u,focusable:!a,active:h,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":f,"data-state":h?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...l,ref:r,onMouseDown:(0,i.composeEventHandlers)(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,i.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,i.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;h||a||!e||c.onValueChange(n)})})})});K.displayName=L;var B="TabsContent",H=r.forwardRef((e,i)=>{let{__scopeTabs:s,value:n,forceMount:a,children:l,...c}=e,u=F(B,s),d=$(u.baseId,n),f=G(u.baseId,n),h=n===u.value,p=r.useRef(h);return r.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(A.Presence,{present:a||h,children:({present:r})=>(0,t.jsx)(o.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!r,id:f,tabIndex:0,...c,ref:i,style:{...e.style,animationDuration:p.current?"0s":void 0},children:r&&l})})});function $(e,t){return`${e}-trigger-${t}`}function G(e,t){return`${e}-content-${t}`}H.displayName=B,e.s(["Content",()=>H,"List",()=>O,"Root",()=>P,"Tabs",()=>P,"TabsContent",()=>H,"TabsList",()=>O,"TabsTrigger",()=>K,"Trigger",()=>K,"createTabsScope",()=>M],43133);var V=e.i(43133),V=V,q=e.i(31777);let U=V.Root,_=r.forwardRef(({className:e,...r},i)=>(0,t.jsx)(V.List,{ref:i,className:(0,q.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...r}));_.displayName=V.List.displayName;let X=r.forwardRef(({className:e,...r},i)=>(0,t.jsx)(V.Trigger,{ref:i,className:(0,q.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...r}));X.displayName=V.Trigger.displayName;let W=r.forwardRef(({className:e,...r},i)=>(0,t.jsx)(V.Content,{ref:i,className:(0,q.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...r}));W.displayName=V.Content.displayName,e.s(["Tabs",()=>U,"TabsContent",()=>W,"TabsList",()=>_,"TabsTrigger",()=>X],68304)},95812,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812)},81181,e=>{"use strict";var t=e.i(95230);e.s(["Download",()=>t.default])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,11345,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(87620),o=r.forwardRef((e,r)=>(0,t.jsx)(n.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label",e.s(["Label",()=>o,"Root",()=>o],27572);var a=e.i(27572),a=a,s=e.i(94237),i=e.i(31777);let l=(0,s.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(a.Root,{ref:n,className:(0,i.cn)(l(),e),...r}));c.displayName=a.Root.displayName,e.s(["Label",()=>c],41957);let d=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>d],11345)},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],76016)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},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)},61569,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},87342,e=>{"use strict";var t=e.i(79054),r=e.i(22528),n=e.i(5978),o=e.i(86874),a=e.i(20314);function s(e){let s=e+"CollectionProvider",[i,l]=(0,r.createContextScope)(s),[c,d]=i(s,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:r,children:n}=e,o=t.default.useRef(null),s=t.default.useRef(new Map).current;return(0,a.jsx)(c,{scope:r,itemMap:s,collectionRef:o,children:n})};u.displayName=s;let p=e+"CollectionSlot",h=(0,o.createSlot)(p),f=t.default.forwardRef((e,t)=>{let{scope:r,children:o}=e,s=d(p,r),i=(0,n.useComposedRefs)(t,s.collectionRef);return(0,a.jsx)(h,{ref:i,children:o})});f.displayName=p;let m=e+"CollectionItemSlot",g="data-radix-collection-item",x=(0,o.createSlot)(m),v=t.default.forwardRef((e,r)=>{let{scope:o,children:s,...i}=e,l=t.default.useRef(null),c=(0,n.useComposedRefs)(r,l),u=d(m,o);return t.default.useEffect(()=>(u.itemMap.set(l,{ref:l,...i}),()=>void u.itemMap.delete(l))),(0,a.jsx)(x,{...{[g]:""},ref:c,children:s})});return v.displayName=m,[{Provider:u,Slot:f,ItemSlot:v},function(r){let n=d(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${g}]`));return Array.from(n.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[n.collectionRef,n.itemMap])},l]}var i=new WeakMap;function l(e,t){var r,n;let o,a,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(a=c(n))>=0?a:o+a)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],i.set(this,!0)}set(e,t){return i.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),a=this.#e.length,s=c(e),i=s>=0?s:a+s,l=i<0||i>=a?-1:i;if(l===this.size||o&&l===this.size-1||-1===l)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#e],p=!1;for(let e=i;e<d;e++)if(i===e){let a=u[e];u[e]===t&&(a=u[e+1]),o&&this.delete(t),n=this.get(a),this.set(t,r)}else{p||u[e-1]!==t||(p=!0);let r=u[p?e:e-1],o=n;n=this.get(r),this.delete(r),this.set(r,o)}return this}with(t,r,n){let o=new e(this);return o.insert(t,r,n),o}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=l(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=l(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return l(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}}),e.s(["createCollection",()=>s])},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},99105,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],99105)},87889,e=>{"use strict";let t=(0,e.i(3645).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>t],87889)},44229,e=>{"use strict";var t=e.i(93752);e.s(["Code",()=>t.default])},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},20858,32664,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00f4ecb2d498db8f141564f1a20d50bbd831973fdb",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],20858);let n=(0,t.createServerReference)("60e4173344b70e9234cae6140ac60bc27710276d7c",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>n],32664)},26370,e=>{"use strict";let t=(0,e.i(3645).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>t],26370)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(91967),o=e.i(5978),a=e.i(22528),s=e.i(36589),i=e.i(23405),l=e.i(77624),c=e.i(87620),d="Switch",[u,p]=(0,a.createContextScope)(d),[h,f]=u(d),m=r.forwardRef((e,a)=>{let{__scopeSwitch:i,name:l,checked:u,defaultChecked:p,required:f,disabled:m,value:g="on",onCheckedChange:x,form:b,...y}=e,[k,j]=r.useState(null),C=(0,o.useComposedRefs)(a,e=>j(e)),S=r.useRef(!1),N=!k||b||!!k.closest("form"),[P,R]=(0,s.useControllableState)({prop:u,defaultProp:p??!1,onChange:x,caller:d});return(0,t.jsxs)(h,{scope:i,checked:P,disabled:m,children:[(0,t.jsx)(c.Primitive.button,{type:"button",role:"switch","aria-checked":P,"aria-required":f,"data-state":w(P),"data-disabled":m?"":void 0,disabled:m,value:g,...y,ref:C,onClick:(0,n.composeEventHandlers)(e.onClick,e=>{R(e=>!e),N&&(S.current=e.isPropagationStopped(),S.current||e.stopPropagation())})}),N&&(0,t.jsx)(v,{control:k,bubbles:!S.current,name:l,value:g,checked:P,required:f,disabled:m,form:b,style:{transform:"translateX(-100%)"}})]})});m.displayName=d;var g="SwitchThumb",x=r.forwardRef((e,r)=>{let{__scopeSwitch:n,...o}=e,a=f(g,n);return(0,t.jsx)(c.Primitive.span,{"data-state":w(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:r})});x.displayName=g;var v=r.forwardRef(({__scopeSwitch:e,control:n,checked:a,bubbles:s=!0,...c},d)=>{let u=r.useRef(null),p=(0,o.useComposedRefs)(u,d),h=(0,i.usePrevious)(a),f=(0,l.useSize)(n);return r.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(h!==a&&t){let r=new Event("click",{bubbles:s});t.call(e,a),e.dispatchEvent(r)}},[h,a,s]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a,...c,tabIndex:-1,ref:p,style:{...c.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function w(e){return e?"checked":"unchecked"}v.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>x,"Thumb",()=>x,"createSwitchScope",()=>p],95291);var b=e.i(95291),b=b,y=e.i(31777);function k({className:e,size:r="default",...n}){return(0,t.jsx)(b.Root,{"data-slot":"switch","data-size":r,className:(0,y.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),...n,children:(0,t.jsx)(b.Thumb,{"data-slot":"switch-thumb",className:(0,y.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")})})}e.s(["Switch",()=>k],51911)},90382,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(91967),o=e.i(5978),a=e.i(22528),s=e.i(53532),i=e.i(41687),l=e.i(56720),c=e.i(13123),d=e.i(52740),u=e.i(39979),p=e.i(85995),h=e.i(87620),f=e.i(86874),m=e.i(36589),g=e.i(73772),x=e.i(13044),v="Popover",[w,b]=(0,a.createContextScope)(v,[d.createPopperScope]),y=(0,d.createPopperScope)(),[k,j]=w(v),C=e=>{let{__scopePopover:n,children:o,open:a,defaultOpen:s,onOpenChange:i,modal:l=!1}=e,u=y(n),p=r.useRef(null),[h,f]=r.useState(!1),[g,x]=(0,m.useControllableState)({prop:a,defaultProp:s??!1,onChange:i,caller:v});return(0,t.jsx)(d.Root,{...u,children:(0,t.jsx)(k,{scope:n,contentId:(0,c.useId)(),triggerRef:p,open:g,onOpenChange:x,onOpenToggle:r.useCallback(()=>x(e=>!e),[x]),hasCustomAnchor:h,onCustomAnchorAdd:r.useCallback(()=>f(!0),[]),onCustomAnchorRemove:r.useCallback(()=>f(!1),[]),modal:l,children:o})})};C.displayName=v;var S="PopoverAnchor",N=r.forwardRef((e,n)=>{let{__scopePopover:o,...a}=e,s=j(S,o),i=y(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:c}=s;return r.useEffect(()=>(l(),()=>c()),[l,c]),(0,t.jsx)(d.Anchor,{...i,...a,ref:n})});N.displayName=S;var P="PopoverTrigger",R=r.forwardRef((e,r)=>{let{__scopePopover:a,...s}=e,i=j(P,a),l=y(a),c=(0,o.useComposedRefs)(r,i.triggerRef),u=(0,t.jsx)(h.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":V(i.open),...s,ref:c,onClick:(0,n.composeEventHandlers)(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?u:(0,t.jsx)(d.Anchor,{asChild:!0,...l,children:u})});R.displayName=P;var A="PopoverPortal",[I,M]=w(A,{forceMount:void 0}),E=e=>{let{__scopePopover:r,forceMount:n,children:o,container:a}=e,s=j(A,r);return(0,t.jsx)(I,{scope:r,forceMount:n,children:(0,t.jsx)(p.Presence,{present:n||s.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:a,children:o})})})};E.displayName=A;var T="PopoverContent",D=r.forwardRef((e,r)=>{let n=M(T,e.__scopePopover),{forceMount:o=n.forceMount,...a}=e,s=j(T,e.__scopePopover);return(0,t.jsx)(p.Presence,{present:o||s.open,children:s.modal?(0,t.jsx)(F,{...a,ref:r}):(0,t.jsx)(H,{...a,ref:r})})});D.displayName=T;var L=(0,f.createSlot)("PopoverContent.RemoveScroll"),F=r.forwardRef((e,a)=>{let s=j(T,e.__scopePopover),i=r.useRef(null),l=(0,o.useComposedRefs)(a,i),c=r.useRef(!1);return r.useEffect(()=>{let e=i.current;if(e)return(0,g.hideOthers)(e)},[]),(0,t.jsx)(x.RemoveScroll,{as:L,allowPinchZoom:!0,children:(0,t.jsx)(O,{...e,ref:l,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),c.current||s.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;c.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),H=r.forwardRef((e,n)=>{let o=j(T,e.__scopePopover),a=r.useRef(!1),s=r.useRef(!1);return(0,t.jsx)(O,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||o.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,s.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(s.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&s.current&&t.preventDefault()}})}),O=r.forwardRef((e,r)=>{let{__scopePopover:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:h,onFocusOutside:f,onInteractOutside:m,...g}=e,x=j(T,n),v=y(n);return(0,i.useFocusGuards)(),(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:c,children:(0,t.jsx)(s.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:p,onPointerDownOutside:h,onFocusOutside:f,onDismiss:()=>x.onOpenChange(!1),children:(0,t.jsx)(d.Content,{"data-state":V(x.open),role:"dialog",id:x.contentId,...v,...g,ref:r,style:{...g.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),z="PopoverClose",B=r.forwardRef((e,r)=>{let{__scopePopover:o,...a}=e,s=j(z,o);return(0,t.jsx)(h.Primitive.button,{type:"button",...a,ref:r,onClick:(0,n.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})});B.displayName=z;var _=r.forwardRef((e,r)=>{let{__scopePopover:n,...o}=e,a=y(n);return(0,t.jsx)(d.Arrow,{...a,...o,ref:r})});function V(e){return e?"open":"closed"}_.displayName="PopoverArrow",e.s(["Anchor",()=>N,"Arrow",()=>_,"Close",()=>B,"Content",()=>D,"Popover",()=>C,"PopoverAnchor",()=>N,"PopoverArrow",()=>_,"PopoverClose",()=>B,"PopoverContent",()=>D,"PopoverPortal",()=>E,"PopoverTrigger",()=>R,"Portal",()=>E,"Root",()=>C,"Trigger",()=>R,"createPopoverScope",()=>b],89920);var W=e.i(89920),W=W,q=e.i(31777);let U=W.Root,K=W.Trigger;W.Anchor;let G=r.forwardRef(({className:e,align:r="center",sideOffset:n=4,...o},a)=>(0,t.jsx)(W.Portal,{children:(0,t.jsx)(W.Content,{ref:a,align:r,sideOffset:n,className:(0,q.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));G.displayName=W.Content.displayName,e.s(["Popover",()=>U,"PopoverContent",()=>G,"PopoverTrigger",()=>K],90382)},41413,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(23925),o=e.i(11345),a=e.i(76016),s=e.i(20858),i=e.i(32664),l=e.i(86782),c=e.i(29847),d=e.i(35364),u=e.i(90382),p=e.i(31777);function h({initialAgentType:e,initialModel:h,onAgentModelChange:f,disabled:m,className:g,mode:x}){let[v,w]=r.useState(!1),[b,y]=r.useState([]),[k,j]=r.useState(!0),[C,S]=r.useState(e),[N,P]=r.useState(h),[R,A]=r.useState(null),[I,M]=r.useState(0),[E,T]=r.useState(null);r.useEffect(()=>{(0,s.getAllAgentModels)().then(y).finally(()=>j(!1))},[]),r.useEffect(()=>{if(!v){let e=setTimeout(()=>{M(0),T(null)},150);return()=>clearTimeout(e)}},[v]);let D=async(e,t)=>{if(w(!1),e!==C||t!==N){if("override"===x){S(e),P(t),f?.(e,t);return}S(e),P(t),f?.(e,t),A(null);try{let r=await (0,i.updateAgentAndModel)(e,t||null);r.ok||(S(C),P(N),f?.(C,N),A(r.error??"Failed to save"))}catch{S(C),P(N),f?.(C,N),A("Failed to save")}}},L=(0,l.getAgentTypeIcon)(C),F=b.find(e=>e.agentType===C)?.label??C,H=N?(0,c.getModelMeta)(N).displayName||N:null,O=E?b.find(e=>e.agentType===E):null;return(0,t.jsxs)("div",{className:(0,p.cn)("flex flex-col gap-1",g),children:[(0,t.jsxs)(u.Popover,{open:v,onOpenChange:w,children:[(0,t.jsx)(u.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(d.Button,{variant:"outline",role:"combobox","aria-expanded":v,disabled:(m??!1)||k,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(L,{className:"h-4 w-4 shrink-0"}),k?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:F}),H?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:H})]}):null]})]})})}),(0,t.jsx)(u.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===I?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),b.map(e=>{let r=(0,l.getAgentTypeIcon)(e.agentType),o=C===e.agentType,s=e.models.length>0;return(0,t.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",o&&"bg-accent/50"),onClick:()=>{s?(T(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>M(1))})):D(e.agentType,"")},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-left",children:e.label}),o&&!s?(0,t.jsx)(n.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,s?(0,t.jsx)(a.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{M(0),setTimeout(()=>T(null),220)},children:[(0,t.jsx)(o.ChevronLeft,{className:"h-3.5 w-3.5"}),O.label]}),O.models.map(e=>{let r=C===O.agentType&&N===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors","hover:bg-accent hover:text-accent-foreground",r&&"bg-accent/50"),onClick:()=>D(O.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(n.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!R&&(0,t.jsx)("p",{className:"text-destructive text-sm",children:R})]})}e.s(["AgentModelPicker",()=>h])},74294,47373,e=>{"use strict";var t=e.i(3645);let r=(0,t.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",()=>r],74294);var n=e.i(20314),o=e.i(79054),a=e.i(26036),s=e.i(27069),i=e.i(91967),l=e.i(87342),c=e.i(5978),d=e.i(22528),u=e.i(66033),p=e.i(53532),h=e.i(41687),f=e.i(56720),m=e.i(13123),g=e.i(52740),x=e.i(39979),v=e.i(87620),w=e.i(86874),b=e.i(29297),y=e.i(36589),k=e.i(5192),j=e.i(23405),C=e.i(1693),S=e.i(73772),N=e.i(13044),P=[" ","Enter","ArrowUp","ArrowDown"],R=[" ","Enter"],A="Select",[I,M,E]=(0,l.createCollection)(A),[T,D]=(0,d.createContextScope)(A,[E,g.createPopperScope]),L=(0,g.createPopperScope)(),[F,H]=T(A),[O,z]=T(A),B=e=>{let{__scopeSelect:t,children:r,open:a,defaultOpen:s,onOpenChange:i,value:l,defaultValue:c,onValueChange:d,dir:p,name:h,autoComplete:f,disabled:x,required:v,form:w}=e,b=L(t),[k,j]=o.useState(null),[C,S]=o.useState(null),[N,P]=o.useState(!1),R=(0,u.useDirection)(p),[M,E]=(0,y.useControllableState)({prop:a,defaultProp:s??!1,onChange:i,caller:A}),[T,D]=(0,y.useControllableState)({prop:l,defaultProp:c,onChange:d,caller:A}),H=o.useRef(null),z=!k||w||!!k.closest("form"),[B,_]=o.useState(new Set),V=Array.from(B).map(e=>e.props.value).join(";");return(0,n.jsx)(g.Root,{...b,children:(0,n.jsxs)(F,{required:v,scope:t,trigger:k,onTriggerChange:j,valueNode:C,onValueNodeChange:S,valueNodeHasChildren:N,onValueNodeHasChildrenChange:P,contentId:(0,m.useId)(),value:T,onValueChange:D,open:M,onOpenChange:E,dir:R,triggerPointerDownPosRef:H,disabled:x,children:[(0,n.jsx)(I.Provider,{scope:t,children:(0,n.jsx)(O,{scope:e.__scopeSelect,onNativeOptionAdd:o.useCallback(e=>{_(t=>new Set(t).add(e))},[]),onNativeOptionRemove:o.useCallback(e=>{_(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),z?(0,n.jsxs)(eP,{"aria-hidden":!0,required:v,tabIndex:-1,name:h,autoComplete:f,value:T,onChange:e=>D(e.target.value),disabled:x,form:w,children:[void 0===T?(0,n.jsx)("option",{value:""}):null,Array.from(B)]},V):null]})})};B.displayName=A;var _="SelectTrigger",V=o.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:a=!1,...s}=e,l=L(r),d=H(_,r),u=d.disabled||a,p=(0,c.useComposedRefs)(t,d.onTriggerChange),h=M(r),f=o.useRef("touch"),[m,x,w]=eA(e=>{let t=h().filter(e=>!e.disabled),r=t.find(e=>e.value===d.value),n=eI(t,e,r);void 0!==n&&d.onValueChange(n.value)}),b=e=>{u||(d.onOpenChange(!0),w()),e&&(d.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,n.jsx)(g.Anchor,{asChild:!0,...l,children:(0,n.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":eR(d.value)?"":void 0,...s,ref:p,onClick:(0,i.composeEventHandlers)(s.onClick,e=>{e.currentTarget.focus(),"mouse"!==f.current&&b(e)}),onPointerDown:(0,i.composeEventHandlers)(s.onPointerDown,e=>{f.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(b(e),e.preventDefault())}),onKeyDown:(0,i.composeEventHandlers)(s.onKeyDown,e=>{let t=""!==m.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||x(e.key),(!t||" "!==e.key)&&P.includes(e.key)&&(b(),e.preventDefault())})})})});V.displayName=_;var W="SelectValue",q=o.forwardRef((e,t)=>{let{__scopeSelect:r,className:o,style:a,children:s,placeholder:i="",...l}=e,d=H(W,r),{onValueNodeHasChildrenChange:u}=d,p=void 0!==s,h=(0,c.useComposedRefs)(t,d.onValueNodeChange);return(0,k.useLayoutEffect)(()=>{u(p)},[u,p]),(0,n.jsx)(v.Primitive.span,{...l,ref:h,style:{pointerEvents:"none"},children:eR(d.value)?(0,n.jsx)(n.Fragment,{children:i}):s})});q.displayName=W;var U=o.forwardRef((e,t)=>{let{__scopeSelect:r,children:o,...a}=e;return(0,n.jsx)(v.Primitive.span,{"aria-hidden":!0,...a,ref:t,children:o||"▼"})});U.displayName="SelectIcon";var K=e=>(0,n.jsx)(x.Portal,{asChild:!0,...e});K.displayName="SelectPortal";var G="SelectContent",Z=o.forwardRef((e,t)=>{let r=H(G,e.__scopeSelect),[s,i]=o.useState();return((0,k.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),r.open)?(0,n.jsx)(Q,{...e,ref:t}):s?a.createPortal((0,n.jsx)(Y,{scope:e.__scopeSelect,children:(0,n.jsx)(I.Slot,{scope:e.__scopeSelect,children:(0,n.jsx)("div",{children:e.children})})}),s):null});Z.displayName=G;var[Y,X]=T(G),$=(0,w.createSlot)("SelectContent.RemoveScroll"),Q=o.forwardRef((e,t)=>{let{__scopeSelect:r,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:l,onPointerDownOutside:d,side:u,sideOffset:m,align:g,alignOffset:x,arrowPadding:v,collisionBoundary:w,collisionPadding:b,sticky:y,hideWhenDetached:k,avoidCollisions:j,...C}=e,P=H(G,r),[R,A]=o.useState(null),[I,E]=o.useState(null),T=(0,c.useComposedRefs)(t,e=>A(e)),[D,L]=o.useState(null),[F,O]=o.useState(null),z=M(r),[B,_]=o.useState(!1),V=o.useRef(!1);o.useEffect(()=>{if(R)return(0,S.hideOthers)(R)},[R]),(0,h.useFocusGuards)();let W=o.useCallback(e=>{let[t,...r]=z().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(r?.scrollIntoView({block:"nearest"}),r===t&&I&&(I.scrollTop=0),r===n&&I&&(I.scrollTop=I.scrollHeight),r?.focus(),document.activeElement!==o))return},[z,I]),q=o.useCallback(()=>W([D,R]),[W,D,R]);o.useEffect(()=>{B&&q()},[B,q]);let{onOpenChange:U,triggerPointerDownPosRef:K}=P;o.useEffect(()=>{if(R){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(K.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():R.contains(r.target)||U(!1),document.removeEventListener("pointermove",t),K.current=null};return null!==K.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[R,U,K]),o.useEffect(()=>{let e=()=>U(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[U]);let[Z,X]=eA(e=>{let t=z().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eI(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),Q=o.useCallback((e,t,r)=>{let n=!V.current&&!r;(void 0!==P.value&&P.value===t||n)&&(L(e),n&&(V.current=!0))},[P.value]),et=o.useCallback(()=>R?.focus(),[R]),er=o.useCallback((e,t,r)=>{let n=!V.current&&!r;(void 0!==P.value&&P.value===t||n)&&O(e)},[P.value]),en="popper"===a?ee:J,eo=en===ee?{side:u,sideOffset:m,align:g,alignOffset:x,arrowPadding:v,collisionBoundary:w,collisionPadding:b,sticky:y,hideWhenDetached:k,avoidCollisions:j}:{};return(0,n.jsx)(Y,{scope:r,content:R,viewport:I,onViewportChange:E,itemRefCallback:Q,selectedItem:D,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:q,selectedItemText:F,position:a,isPositioned:B,searchRef:Z,children:(0,n.jsx)(N.RemoveScroll,{as:$,allowPinchZoom:!0,children:(0,n.jsx)(f.FocusScope,{asChild:!0,trapped:P.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,i.composeEventHandlers)(s,e=>{P.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,n.jsx)(p.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>P.onOpenChange(!1),children:(0,n.jsx)(en,{role:"listbox",id:P.contentId,"data-state":P.open?"open":"closed",dir:P.dir,onContextMenu:e=>e.preventDefault(),...C,...eo,onPlaced:()=>_(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:(0,i.composeEventHandlers)(C.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||X(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=z().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>W(t)),e.preventDefault()}})})})})})})});Q.displayName="SelectContentImpl";var J=o.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:a,...i}=e,l=H(G,r),d=X(G,r),[u,p]=o.useState(null),[h,f]=o.useState(null),m=(0,c.useComposedRefs)(t,e=>f(e)),g=M(r),x=o.useRef(!1),w=o.useRef(!0),{viewport:b,selectedItem:y,selectedItemText:j,focusSelectedItem:C}=d,S=o.useCallback(()=>{if(l.trigger&&l.valueNode&&u&&h&&b&&y&&j){let e=l.trigger.getBoundingClientRect(),t=h.getBoundingClientRect(),r=l.valueNode.getBoundingClientRect(),n=j.getBoundingClientRect();if("rtl"!==l.dir){let o=n.left-t.left,a=r.left-o,i=e.left-a,l=e.width+i,c=Math.max(l,t.width),d=window.innerWidth-10,p=(0,s.clamp)(a,[10,Math.max(10,d-c)]);u.style.minWidth=l+"px",u.style.left=p+"px"}else{let o=t.right-n.right,a=window.innerWidth-r.right-o,i=window.innerWidth-e.right-a,l=e.width+i,c=Math.max(l,t.width),d=window.innerWidth-10,p=(0,s.clamp)(a,[10,Math.max(10,d-c)]);u.style.minWidth=l+"px",u.style.right=p+"px"}let o=g(),i=window.innerHeight-20,c=b.scrollHeight,d=window.getComputedStyle(h),p=parseInt(d.borderTopWidth,10),f=parseInt(d.paddingTop,10),m=parseInt(d.borderBottomWidth,10),v=p+f+c+parseInt(d.paddingBottom,10)+m,w=Math.min(5*y.offsetHeight,v),k=window.getComputedStyle(b),C=parseInt(k.paddingTop,10),S=parseInt(k.paddingBottom,10),N=e.top+e.height/2-10,P=y.offsetHeight/2,R=p+f+(y.offsetTop+P);if(R<=N){let e=o.length>0&&y===o[o.length-1].ref.current;u.style.bottom="0px";let t=Math.max(i-N,P+(e?S:0)+(h.clientHeight-b.offsetTop-b.offsetHeight)+m);u.style.height=R+t+"px"}else{let e=o.length>0&&y===o[0].ref.current;u.style.top="0px";let t=Math.max(N,p+b.offsetTop+(e?C:0)+P);u.style.height=t+(v-R)+"px",b.scrollTop=R-N+b.offsetTop}u.style.margin="10px 0",u.style.minHeight=w+"px",u.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>x.current=!0)}},[g,l.trigger,l.valueNode,u,h,b,y,j,l.dir,a]);(0,k.useLayoutEffect)(()=>S(),[S]);let[N,P]=o.useState();(0,k.useLayoutEffect)(()=>{h&&P(window.getComputedStyle(h).zIndex)},[h]);let R=o.useCallback(e=>{e&&!0===w.current&&(S(),C?.(),w.current=!1)},[S,C]);return(0,n.jsx)(et,{scope:r,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:R,children:(0,n.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:N},children:(0,n.jsx)(v.Primitive.div,{...i,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});J.displayName="SelectItemAlignedPosition";var ee=o.forwardRef((e,t)=>{let{__scopeSelect:r,align:o="start",collisionPadding:a=10,...s}=e,i=L(r);return(0,n.jsx)(g.Content,{...i,...s,ref:t,align:o,collisionPadding:a,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ee.displayName="SelectPopperPosition";var[et,er]=T(G,{}),en="SelectViewport",eo=o.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:a,...s}=e,l=X(en,r),d=er(en,r),u=(0,c.useComposedRefs)(t,l.onViewportChange),p=o.useRef(0);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,n.jsx)(I.Slot,{scope:r,children:(0,n.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:(0,i.composeEventHandlers)(s.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=d;if(n?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o<n){let a=o+e,s=Math.min(n,a),i=a-s;r.style.height=s+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});eo.displayName=en;var ea="SelectGroup",[es,ei]=T(ea),el=o.forwardRef((e,t)=>{let{__scopeSelect:r,...o}=e,a=(0,m.useId)();return(0,n.jsx)(es,{scope:r,id:a,children:(0,n.jsx)(v.Primitive.div,{role:"group","aria-labelledby":a,...o,ref:t})})});el.displayName=ea;var ec="SelectLabel",ed=o.forwardRef((e,t)=>{let{__scopeSelect:r,...o}=e,a=ei(ec,r);return(0,n.jsx)(v.Primitive.div,{id:a.id,...o,ref:t})});ed.displayName=ec;var eu="SelectItem",[ep,eh]=T(eu),ef=o.forwardRef((e,t)=>{let{__scopeSelect:r,value:a,disabled:s=!1,textValue:l,...d}=e,u=H(eu,r),p=X(eu,r),h=u.value===a,[f,g]=o.useState(l??""),[x,w]=o.useState(!1),b=(0,c.useComposedRefs)(t,e=>p.itemRefCallback?.(e,a,s)),y=(0,m.useId)(),k=o.useRef("touch"),j=()=>{s||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,n.jsx)(ep,{scope:r,value:a,disabled:s,textId:y,isSelected:h,onItemTextChange:o.useCallback(e=>{g(t=>t||(e?.textContent??"").trim())},[]),children:(0,n.jsx)(I.ItemSlot,{scope:r,value:a,disabled:s,textValue:f,children:(0,n.jsx)(v.Primitive.div,{role:"option","aria-labelledby":y,"data-highlighted":x?"":void 0,"aria-selected":h&&x,"data-state":h?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...d,ref:b,onFocus:(0,i.composeEventHandlers)(d.onFocus,()=>w(!0)),onBlur:(0,i.composeEventHandlers)(d.onBlur,()=>w(!1)),onClick:(0,i.composeEventHandlers)(d.onClick,()=>{"mouse"!==k.current&&j()}),onPointerUp:(0,i.composeEventHandlers)(d.onPointerUp,()=>{"mouse"===k.current&&j()}),onPointerDown:(0,i.composeEventHandlers)(d.onPointerDown,e=>{k.current=e.pointerType}),onPointerMove:(0,i.composeEventHandlers)(d.onPointerMove,e=>{k.current=e.pointerType,s?p.onItemLeave?.():"mouse"===k.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,i.composeEventHandlers)(d.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,i.composeEventHandlers)(d.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(R.includes(e.key)&&j()," "===e.key&&e.preventDefault())})})})})});ef.displayName=eu;var em="SelectItemText",eg=o.forwardRef((e,t)=>{let{__scopeSelect:r,className:s,style:i,...l}=e,d=H(em,r),u=X(em,r),p=eh(em,r),h=z(em,r),[f,m]=o.useState(null),g=(0,c.useComposedRefs)(t,e=>m(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),x=f?.textContent,w=o.useMemo(()=>(0,n.jsx)("option",{value:p.value,disabled:p.disabled,children:x},p.value),[p.disabled,p.value,x]),{onNativeOptionAdd:b,onNativeOptionRemove:y}=h;return(0,k.useLayoutEffect)(()=>(b(w),()=>y(w)),[b,y,w]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(v.Primitive.span,{id:p.textId,...l,ref:g}),p.isSelected&&d.valueNode&&!d.valueNodeHasChildren?a.createPortal(l.children,d.valueNode):null]})});eg.displayName=em;var ex="SelectItemIndicator",ev=o.forwardRef((e,t)=>{let{__scopeSelect:r,...o}=e;return eh(ex,r).isSelected?(0,n.jsx)(v.Primitive.span,{"aria-hidden":!0,...o,ref:t}):null});ev.displayName=ex;var ew="SelectScrollUpButton",eb=o.forwardRef((e,t)=>{let r=X(ew,e.__scopeSelect),a=er(ew,e.__scopeSelect),[s,i]=o.useState(!1),l=(0,c.useComposedRefs)(t,a.onScrollButtonChange);return(0,k.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){i(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),s?(0,n.jsx)(ej,{...e,ref:l,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});eb.displayName=ew;var ey="SelectScrollDownButton",ek=o.forwardRef((e,t)=>{let r=X(ey,e.__scopeSelect),a=er(ey,e.__scopeSelect),[s,i]=o.useState(!1),l=(0,c.useComposedRefs)(t,a.onScrollButtonChange);return(0,k.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;i(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),s?(0,n.jsx)(ej,{...e,ref:l,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ek.displayName=ey;var ej=o.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:a,...s}=e,l=X("SelectScrollButton",r),c=o.useRef(null),d=M(r),u=o.useCallback(()=>{null!==c.current&&(window.clearInterval(c.current),c.current=null)},[]);return o.useEffect(()=>()=>u(),[u]),(0,k.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,n.jsx)(v.Primitive.div,{"aria-hidden":!0,...s,ref:t,style:{flexShrink:0,...s.style},onPointerDown:(0,i.composeEventHandlers)(s.onPointerDown,()=>{null===c.current&&(c.current=window.setInterval(a,50))}),onPointerMove:(0,i.composeEventHandlers)(s.onPointerMove,()=>{l.onItemLeave?.(),null===c.current&&(c.current=window.setInterval(a,50))}),onPointerLeave:(0,i.composeEventHandlers)(s.onPointerLeave,()=>{u()})})}),eC=o.forwardRef((e,t)=>{let{__scopeSelect:r,...o}=e;return(0,n.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:t})});eC.displayName="SelectSeparator";var eS="SelectArrow",eN=o.forwardRef((e,t)=>{let{__scopeSelect:r,...o}=e,a=L(r),s=H(eS,r),i=X(eS,r);return s.open&&"popper"===i.position?(0,n.jsx)(g.Arrow,{...a,...o,ref:t}):null});eN.displayName=eS;var eP=o.forwardRef(({__scopeSelect:e,value:t,...r},a)=>{let s=o.useRef(null),i=(0,c.useComposedRefs)(a,s),l=(0,j.usePrevious)(t);return o.useEffect(()=>{let e=s.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(l!==t&&r){let n=new Event("change",{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[l,t]),(0,n.jsx)(v.Primitive.select,{...r,style:{...C.VISUALLY_HIDDEN_STYLES,...r.style},ref:i,defaultValue:t})});function eR(e){return""===e||void 0===e}function eA(e){let t=(0,b.useCallbackRef)(e),r=o.useRef(""),n=o.useRef(0),a=o.useCallback(e=>{let o=r.current+e;t(o),function e(t){r.current=t,window.clearTimeout(n.current),""!==t&&(n.current=window.setTimeout(()=>e(""),1e3))}(o)},[t]),s=o.useCallback(()=>{r.current="",window.clearTimeout(n.current)},[]);return o.useEffect(()=>()=>window.clearTimeout(n.current),[]),[r,a,s]}function eI(e,t,r){var n,o;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,s=r?e.indexOf(r):-1,i=(n=e,o=Math.max(s,0),n.map((e,t)=>n[(o+t)%n.length]));1===a.length&&(i=i.filter(e=>e!==r));let l=i.find(e=>e.textValue.toLowerCase().startsWith(a.toLowerCase()));return l!==r?l:void 0}eP.displayName="SelectBubbleInput",e.s(["Arrow",()=>eN,"Content",()=>Z,"Group",()=>el,"Icon",()=>U,"Item",()=>ef,"ItemIndicator",()=>ev,"ItemText",()=>eg,"Label",()=>ed,"Portal",()=>K,"Root",()=>B,"ScrollDownButton",()=>ek,"ScrollUpButton",()=>eb,"Select",()=>B,"SelectArrow",()=>eN,"SelectContent",()=>Z,"SelectGroup",()=>el,"SelectIcon",()=>U,"SelectItem",()=>ef,"SelectItemIndicator",()=>ev,"SelectItemText",()=>eg,"SelectLabel",()=>ed,"SelectPortal",()=>K,"SelectScrollDownButton",()=>ek,"SelectScrollUpButton",()=>eb,"SelectSeparator",()=>eC,"SelectTrigger",()=>V,"SelectValue",()=>q,"SelectViewport",()=>eo,"Separator",()=>eC,"Trigger",()=>V,"Value",()=>q,"Viewport",()=>eo,"createSelectScope",()=>D],83830);var eM=e.i(83830),eM=eM,eE=e.i(23925),eT=e.i(99105);let eD=(0,t.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var eL=e.i(31777);let eF=eM.Root;eM.Group;let eH=eM.Value,eO=o.forwardRef(({className:e,children:t,...r},o)=>(0,n.jsxs)(eM.Trigger,{ref:o,className:(0,eL.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...r,children:[t,(0,n.jsx)(eM.Icon,{asChild:!0,children:(0,n.jsx)(eT.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));eO.displayName=eM.Trigger.displayName;let ez=o.forwardRef(({className:e,...t},r)=>(0,n.jsx)(eM.ScrollUpButton,{ref:r,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,n.jsx)(eD,{className:"h-4 w-4"})}));ez.displayName=eM.ScrollUpButton.displayName;let eB=o.forwardRef(({className:e,...t},r)=>(0,n.jsx)(eM.ScrollDownButton,{ref:r,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,n.jsx)(eT.ChevronDown,{className:"h-4 w-4"})}));eB.displayName=eM.ScrollDownButton.displayName;let e_=o.forwardRef(({className:e,children:t,position:r="popper",...o},a)=>(0,n.jsx)(eM.Portal,{children:(0,n.jsxs)(eM.Content,{ref:a,className:(0,eL.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...o,children:[(0,n.jsx)(ez,{}),(0,n.jsx)(eM.Viewport,{className:(0,eL.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),(0,n.jsx)(eB,{})]})}));e_.displayName=eM.Content.displayName,o.forwardRef(({className:e,...t},r)=>(0,n.jsx)(eM.Label,{ref:r,className:(0,eL.cn)("px-2 py-1.5 text-sm font-semibold",e),...t})).displayName=eM.Label.displayName;let eV=o.forwardRef(({className:e,children:t,...r},o)=>(0,n.jsxs)(eM.Item,{ref:o,className:(0,eL.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r,children:[(0,n.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,n.jsx)(eM.ItemIndicator,{children:(0,n.jsx)(eE.Check,{className:"h-4 w-4"})})}),(0,n.jsx)(eM.ItemText,{children:t})]}));eV.displayName=eM.Item.displayName,o.forwardRef(({className:e,...t},r)=>(0,n.jsx)(eM.Separator,{ref:r,className:(0,eL.cn)("bg-muted -mx-1 my-1 h-px",e),...t})).displayName=eM.Separator.displayName,e.s(["Select",()=>eF,"SelectContent",()=>e_,"SelectItem",()=>eV,"SelectTrigger",()=>eO,"SelectValue",()=>eH],47373)},41952,e=>{"use strict";var t=e.i(20314),r=e.i(79054),n=e.i(87889),o=e.i(3645);let a=(0,o.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var s=e.i(23925),i=e.i(26370),l=e.i(38573),c=e.i(49228),d=e.i(74294);let u=(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"}]]),p=(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"}]]),h=(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 f=e.i(61569),f=f,m=e.i(3214),g=e.i(30702);let x=(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 v=e.i(60112),w=e.i(31777),b=e.i(41957),y=e.i(98127),k=e.i(35364),j=e.i(51911),C=e.i(2828),S=e.i(47373),N=e.i(21023);let P=(0,N.createServerReference)("40243a9710d7747d6ecba0c529a9df48ce9cf088e4",N.callServer,void 0,N.findSourceMapURL,"updateSettingsAction");var R=e.i(17406),A=e.i(98804),I=e.i(44229),M=e.i(83902);function E(e){return(0,t.jsx)(I.Code,{className:(0,w.cn)("h-4 w-4",e.className),...e})}function T({className:e}){return(0,t.jsx)(A.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,w.cn)("rounded-sm object-contain",e)})}function D({className:e}){return(0,t.jsx)(A.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,w.cn)("rounded-sm object-contain",e)})}function L({className:e}){return(0,t.jsx)(A.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,w.cn)("rounded-sm object-contain",e)})}function F({className:e}){return(0,t.jsx)(A.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,w.cn)("rounded-sm object-contain",e)})}function H({className:e,...r}){return(0,t.jsx)(M.Rocket,{className:(0,w.cn)("h-4 w-4",e),...r})}T.displayName="VsCodeIcon",D.displayName="CursorEditorIcon",L.displayName="WindsurfIcon",F.displayName="ZedIcon",H.displayName="AntigravityIcon";let O={vscode:T,cursor:D,windsurf:L,zed:F,antigravity:H};var z=e.i(41413);let B=[{value:R.AgentAuthMethod.Session,label:"Session"},{value:R.AgentAuthMethod.Token,label:"Token"}],_=[{value:R.EditorType.VsCode,label:"VS Code"},{value:R.EditorType.Cursor,label:"Cursor"},{value:R.EditorType.Windsurf,label:"Windsurf"},{value:R.EditorType.Zed,label:"Zed"},{value:R.EditorType.Antigravity,label:"Antigravity"}],V=[{id:"agent",label:"Agent",icon:i.Bot},{id:"environment",label:"Environment",icon:l.Terminal},{id:"workflow",label:"Workflow",icon:c.GitBranch},{id:"ci",label:"CI",icon:d.Activity},{id:"notifications",label:"Notifications",icon:u},{id:"feature-flags",label:"Flags",icon:p},{id:"database",label:"Database",icon:h}];function W({label:e,description:r,htmlFor:n,children:o}){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)(b.Label,{htmlFor:n,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:e}),r?(0,t.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:r}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:o})]})}function q({label:e,description:r,id:n,testId:o,checked:a,onChange:s,disabled:i}){return(0,t.jsx)(W,{label:e,description:r,htmlFor:n,children:(0,t.jsx)(j.Switch,{id:n,"data-testid":o,checked:a,onCheckedChange:s,disabled:i,className:(0,w.cn)("cursor-pointer",i&&"cursor-not-allowed opacity-50")})})}function U({icon:e,title:r,description:n,badge:o,testId:a,children:s}){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:r}),o?(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:o}):null]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:n})]}),(0,t.jsx)("div",{className:"px-4",children:s})]})}function K({id:e,testId:r,value:n,onChange:o,onBlur:a,placeholder:s,min:i=1,max:l,step:c=1,suffix:d}){let u=""===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:()=>{o(String(Math.max(i,(u??parseInt(s,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":"Decrease",children:(0,t.jsx)(f.default,{className:"h-3 w-3"})}),(0,t.jsx)("input",{id:e,"data-testid":r,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:n,placeholder:s,onChange:e=>{o(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=u??parseInt(s,10),o(String(null!=l?Math.min(l,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":"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 G({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 Z({children:e,links:r}){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!=r&&r.length>0?(0,t.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:r.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)(g.ExternalLink,{className:"h-2.5 w-2.5"}),e.label]},e.href))}):null]})}function Y({settings:e,shepHome:o,dbFileSize:f}){let{showSaving:m,showSaved:g,save:b}=function(){let[e,t]=(0,r.useTransition)(),[n,o]=(0,r.useState)(!1),[a,s]=(0,r.useState)(!1),i=(0,r.useRef)(null),l=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{e&&!n&&(o(!0),l.current=!1,i.current=setTimeout(()=>{i.current=null,l.current&&(o(!1),s(!0),setTimeout(()=>s(!1),2e3))},350)),!e&&n&&(l.current=!0,i.current||(o(!1),s(!0),setTimeout(()=>s(!1),2e3)))},[e,n]),{showSaving:n,showSaved:a,save:(0,r.useCallback)(e=>{t(async()=>{let t=await P(e);t.success||v.toast.error(t.error??"Failed to save settings")})},[t])}}(),j=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[N,A]=(0,r.useState)(e.agent.type),I=e.agent.authMethod,[M,T]=(0,r.useState)(e.agent.token??""),[D,L]=(0,r.useState)(!1),[F,H]=(0,r.useState)(e.environment.defaultEditor),Y=e.environment.shellPreference,[X,$]=(0,r.useState)(e.workflow.openPrOnImplementationComplete),[Q,J]=(0,r.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[ee,et]=(0,r.useState)(e.workflow.approvalGateDefaults.allowPrd),[er,en]=(0,r.useState)(e.workflow.approvalGateDefaults.allowPlan),[eo,ea]=(0,r.useState)(e.workflow.approvalGateDefaults.allowMerge),[es,ei]=(0,r.useState)(e.workflow.enableEvidence),[el,ec]=(0,r.useState)(e.workflow.commitEvidence),[ed,eu]=(0,r.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[ep,eh]=(0,r.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[ef,em]=(0,r.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[eg,ex]=(0,r.useState)(e.notifications.inApp.enabled),[ev,ew]=(0,r.useState)(e.notifications.browser.enabled),[eb,ey]=(0,r.useState)(e.notifications.desktop.enabled),[ek,ej]=(0,r.useState)({...e.notifications.events}),[eC,eS]=(0,r.useState)({...j}),eN=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",eP=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",eR=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"";function eA(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function eI(e={}){let t=eA(e.ciTimeout??ep);return{workflow:{openPrOnImplementationComplete:e.openPr??X,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??Q,allowPrd:e.allowPrd??ee,allowPlan:e.allowPlan??er,allowMerge:e.allowMerge??eo},enableEvidence:e.enableEvidence??es,commitEvidence:e.commitEvidence??el,ciMaxFixAttempts:eA(e.ciMaxFix??ed),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:eA(e.ciLogMax??ef)}}}function eM(e={}){return{notifications:{inApp:{enabled:e.inApp??eg},browser:{enabled:e.browser??ev},desktop:{enabled:e.desktop??eb},events:e.events??ek}}}let[eE,eT]=(0,r.useState)("agent");(0,r.useEffect)(()=>{let e=V.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&&eT(t.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let r of e)t.observe(r);return()=>t.disconnect()},[]);let eD=(0,r.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)(x,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Settings"}),(0,t.jsxs)("span",{className:"relative h-4 w-16",children:[(0,t.jsx)("span",{className:(0,w.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",m?"opacity-100":"opacity-0"),children:"Saving..."}),(0,t.jsxs)("span",{className:(0,w.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",g&&!m?"opacity-100":"opacity-0"),children:[(0,t.jsx)(s.Check,{className:"h-3 w-3"}),"Saved"]})]}),(0,t.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:V.map(e=>{let r=e.icon,n=eE===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>eD(e.id),className:(0,w.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)(r,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:e.label})]},e.id)})})]})}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(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.jsxs)(U,{icon:i.Bot,title:"Agent",description:"AI coding agent and authentication",testId:"agent-settings-section",children:[(0,t.jsx)(W,{label:"Agent & Model",description:"Provider and model for all operations",htmlFor:"agent-model-picker",children:(0,t.jsx)(z.AgentModelPicker,{initialAgentType:N,initialModel:e.models.default,mode:"settings",onAgentModelChange:e=>A(e),className:"w-55"})}),(0,t.jsx)(W,{label:"Authentication",description:"How the agent authenticates",htmlFor:"auth-method",children:(0,t.jsx)(C.TooltipProvider,{children:(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsxs)(S.Select,{value:I,disabled:!0,children:[(0,t.jsx)(S.SelectTrigger,{id:"auth-method","data-testid":"auth-method-select",className:"w-55 cursor-not-allowed text-xs opacity-60",children:(0,t.jsx)(S.SelectValue,{})}),(0,t.jsx)(S.SelectContent,{children:B.map(e=>(0,t.jsx)(S.SelectItem,{value:e.value,children:e.label},e.value))})]})})}),(0,t.jsx)(C.TooltipContent,{children:"Coming soon"})]})})}),I===R.AgentAuthMethod.Token&&(0,t.jsx)(W,{label:"API Token",htmlFor:"agent-token",children:(0,t.jsxs)("div",{className:"relative w-45",children:[(0,t.jsx)(y.Input,{id:"agent-token","data-testid":"agent-token-input",type:D?"text":"password",value:M,onChange:e=>T(e.target.value),onBlur:()=>{M!==(e.agent.token??"")&&b(function(e={}){let t={type:N,authMethod:I,...e},r={type:t.type,authMethod:t.authMethod};return t.authMethod===R.AgentAuthMethod.Token&&(r.token=e.token??M),{agent:r}}({token:M}))},placeholder:"Enter token",className:"pr-8"}),(0,t.jsx)(k.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>L(!D),"data-testid":"toggle-token-visibility","aria-label":D?"Hide token":"Show token",children:D?(0,t.jsx)(a,{className:"h-3 w-3"}):(0,t.jsx)(n.Eye,{className:"h-3 w-3"})})]})})]}),(0,t.jsx)(Z,{links:[{label:"Agent system",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/agent-system.md"},{label:"Adding agents",href:"https://github.com/shep-ai/cli/blob/main/docs/development/adding-agents.md"},{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Choose which AI coding agent powers your features. Each agent supports different models and capabilities. Authentication is resolved automatically via your active session."})]}),(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.jsx)(U,{icon:l.Terminal,title:"Environment",description:"Editor and shell preferences",testId:"environment-settings-section",children:(0,t.jsx)(W,{label:"Default Editor",description:"Editor launched for file operations",htmlFor:"default-editor",children:(0,t.jsxs)(S.Select,{value:F,onValueChange:e=>{H(e),b({environment:{defaultEditor:e,shellPreference:Y}})},children:[(0,t.jsx)(S.SelectTrigger,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(S.SelectValue,{})}),(0,t.jsx)(S.SelectContent,{children:_.map(e=>{var r;let n=(r=e.value)&&r in O?O[r]:E;return(0,t.jsx)(S.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)(Z,{links:[{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Your preferred editor is used when opening files for review or editing during the development workflow."})]}),(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)(U,{icon:c.GitBranch,title:"Workflow",description:"Automation behavior after implementation",testId:"workflow-settings-section",children:[(0,t.jsx)(G,{children:"Approve"}),(0,t.jsx)(q,{label:"Auto-approve PRD",description:"Skip manual review of requirements",id:"allow-prd",testId:"switch-allow-prd",checked:ee,onChange:e=>{et(e),b(eI({allowPrd:e}))}}),(0,t.jsx)(q,{label:"Auto-approve Plan",description:"Skip manual review of implementation plan",id:"allow-plan",testId:"switch-allow-plan",checked:er,onChange:e=>{en(e),b(eI({allowPlan:e}))}}),(0,t.jsx)(q,{label:"Auto-approve Merge",description:"Merge without manual review",id:"allow-merge",testId:"switch-allow-merge",checked:eo,onChange:e=>{ea(e),b(eI({allowMerge:e}))}}),(0,t.jsx)(G,{children:"Evidence"}),(0,t.jsx)(q,{label:"Collect evidence",description:"Capture screenshots and artifacts after implementation",id:"enable-evidence",testId:"switch-enable-evidence",checked:es,onChange:e=>{ei(e),e?b(eI({enableEvidence:e})):(ec(!1),b(eI({enableEvidence:e,commitEvidence:!1})))}}),(0,t.jsx)(q,{label:"Add evidence to PR",description:"Include evidence in the pull request body",id:"commit-evidence",testId:"switch-commit-evidence",checked:el,disabled:!es||!X,onChange:e=>{ec(e),b(eI({commitEvidence:e}))}}),(0,t.jsx)(G,{children:"Git"}),(0,t.jsx)(q,{label:"Push on complete",description:"Push to remote when implementation finishes",id:"push-on-complete",testId:"switch-push-on-complete",checked:Q,onChange:e=>{J(e),b(eI({pushOnComplete:e}))}}),(0,t.jsx)(q,{label:"Open PR on complete",description:"Create a pull request when done",id:"open-pr",testId:"switch-open-pr",checked:X,onChange:e=>{$(e),e?b(eI({openPr:e})):(ec(!1),b(eI({openPr:e,commitEvidence:!1})))}})]}),(0,t.jsx)(Z,{links:[{label:"Approval gates",href:"https://github.com/shep-ai/cli/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:"Push & PR flags",href:"https://github.com/shep-ai/cli/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:"Control how autonomous each feature run is. Auto-approve skips the human review pause at each phase. Push and PR options control what happens after successful implementation."})]}),(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)(U,{icon:d.Activity,title:"Continuous Integration",description:"Limits and timeouts for CI monitoring",testId:"ci-settings-section",children:[(0,t.jsx)(W,{label:"Max fix attempts",description:"Agent retries on failing CI",htmlFor:"ci-max-fix",children:(0,t.jsx)(K,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:ed,onChange:eu,onBlur:()=>{ed!==eN&&b(eI({ciMaxFix:ed}))},min:1,max:10})}),(0,t.jsx)(W,{label:"Watch timeout",description:"Max wait for CI completion",htmlFor:"ci-timeout",children:(0,t.jsx)(K,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:ep,onChange:eh,onBlur:()=>{ep!==eP&&b(eI({ciTimeout:ep}))},min:30,step:30,suffix:"sec"})}),(0,t.jsx)(W,{label:"Max log size",description:"Truncate CI logs beyond this limit",htmlFor:"ci-log-max",children:(0,t.jsx)(K,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:ef,onChange:em,onBlur:()=>{ef!==eR&&b(eI({ciLogMax:ef}))},min:1e3,step:5e3,suffix:"chars"})})]}),(0,t.jsx)(Z,{links:[{label:"CI/CD pipeline",href:"https://github.com/shep-ai/cli/blob/main/docs/development/cicd.md"},{label:"CI security gates",href:"https://github.com/shep-ai/cli/blob/main/specs/003-cicd-security-gates/spec.md"}],children:"When a feature completes, the agent can watch CI and auto-fix failures. These limits prevent runaway retries and control how much log output is sent to the agent for analysis."})]}),(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)(U,{icon:u,title:"Notifications",description:"How and when you get notified",testId:"notification-settings-section",children:[(0,t.jsx)(G,{children:"Channels"}),(0,t.jsx)(q,{label:"In-app",description:"Notifications inside the Shep UI",id:"notif-in-app",testId:"switch-in-app",checked:eg,onChange:e=>{ex(e),b(eM({inApp:e}))}}),(0,t.jsx)(q,{label:"Browser",description:"Push notifications via the browser",id:"notif-browser",testId:"switch-browser",checked:ev,onChange:e=>{ew(e),b(eM({browser:e}))}}),(0,t.jsx)(q,{label:"Desktop",description:"Native OS notifications",id:"notif-desktop",testId:"switch-desktop",checked:eb,onChange:e=>{ey(e),b(eM({desktop:e}))}}),(0,t.jsx)(G,{children:"Agent Events"}),(0,t.jsx)(q,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:ek.agentStarted,onChange:e=>{let t={...ek,agentStarted:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:ek.phaseCompleted,onChange:e=>{let t={...ek,phaseCompleted:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:ek.waitingApproval,onChange:e=>{let t={...ek,waitingApproval:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:ek.agentCompleted,onChange:e=>{let t={...ek,agentCompleted:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:ek.agentFailed,onChange:e=>{let t={...ek,agentFailed:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(G,{children:"Pull Request Events"}),(0,t.jsx)(q,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:ek.prMerged,onChange:e=>{let t={...ek,prMerged:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:ek.prClosed,onChange:e=>{let t={...ek,prClosed:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:ek.prChecksPassed,onChange:e=>{let t={...ek,prChecksPassed:e};ej(t),b(eM({events:t}))}}),(0,t.jsx)(q,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:ek.prChecksFailed,onChange:e=>{let t={...ek,prChecksFailed:e};ej(t),b(eM({events:t}))}})]}),(0,t.jsx)(Z,{links:[{label:"Notification system",href:"https://github.com/shep-ai/cli/blob/main/specs/021-agent-notifications/spec.yaml"}],children:"Three notification channels keep you in the loop: in-app toasts, browser push notifications, and native desktop alerts. Fine-tune which agent lifecycle events trigger a notification."})]}),(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)(U,{icon:p,title:"Feature Flags",description:"Enable or disable experimental features",badge:"Experimental",testId:"feature-flags-settings-section",children:[(0,t.jsx)(q,{label:"Skills",description:"Enable the skills system for agent capabilities",id:"flag-skills",testId:"switch-flag-skills",checked:eC.skills,onChange:e=>{let t={...eC,skills:e};eS(t),b({featureFlags:t})}}),(0,t.jsx)(q,{label:"Deployments",description:"Enable environment deployment workflows",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:eC.envDeploy,onChange:e=>{let t={...eC,envDeploy:e};eS(t),b({featureFlags:t})}}),(0,t.jsx)(q,{label:"Debug",description:"Show debug panels and verbose logging",id:"flag-debug",testId:"switch-flag-debug",checked:eC.debug,onChange:e=>{let t={...eC,debug:e};eS(t),b({featureFlags:t})}})]}),(0,t.jsx)(Z,{children:"Experimental features that are still under development. Enable at your own risk — they may change or be removed in future versions. Debug mode adds verbose logging useful for troubleshooting."})]}),(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)(U,{icon:h,title:"Database",description:"Local storage information",testId:"database-settings-section",children:[(0,t.jsx)(W,{label:"Location",description:"Path to the local SQLite database",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)(W,{label:"Size",children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:f})})]}),(0,t.jsx)(Z,{links:[{label:"Settings service",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/settings-service.md"},{label:"Settings spec",href:"https://github.com/shep-ai/cli/blob/main/specs/005-global-settings-service/spec.md"}],children:"All settings are stored in a local SQLite database at ~/.shep/data. The database uses a singleton record pattern with automatic migrations on startup."})]})]})]})}e.s(["SettingsPageClient",()=>Y],41952)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},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)},87342,e=>{"use strict";var t=e.i(79054),s=e.i(22528),r=e.i(5978),a=e.i(86874),i=e.i(20314);function l(e){let l=e+"CollectionProvider",[n,o]=(0,s.createContextScope)(l),[c,d]=n(l,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:s,children:r}=e,a=t.default.useRef(null),l=t.default.useRef(new Map).current;return(0,i.jsx)(c,{scope:s,itemMap:l,collectionRef:a,children:r})};u.displayName=l;let m=e+"CollectionSlot",f=(0,a.createSlot)(m),h=t.default.forwardRef((e,t)=>{let{scope:s,children:a}=e,l=d(m,s),n=(0,r.useComposedRefs)(t,l.collectionRef);return(0,i.jsx)(f,{ref:n,children:a})});h.displayName=m;let x=e+"CollectionItemSlot",p="data-radix-collection-item",g=(0,a.createSlot)(x),v=t.default.forwardRef((e,s)=>{let{scope:a,children:l,...n}=e,o=t.default.useRef(null),c=(0,r.useComposedRefs)(s,o),u=d(x,a);return t.default.useEffect(()=>(u.itemMap.set(o,{ref:o,...n}),()=>void u.itemMap.delete(o))),(0,i.jsx)(g,{...{[p]:""},ref:c,children:l})});return v.displayName=x,[{Provider:u,Slot:h,ItemSlot:v},function(s){let r=d(e+"CollectionConsumer",s);return t.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,s)=>t.indexOf(e.ref.current)-t.indexOf(s.ref.current))},[r.collectionRef,r.itemMap])},o]}var n=new WeakMap;function o(e,t){var s,r;let a,i,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=(s=e,r=t,a=s.length,(l=(i=c(r))>=0?i:a+i)<0||l>=a?-1:l);return -1===n?void 0:e[n]}function c(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],n.set(this,!0)}set(e,t){return n.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,s){let r,a=this.has(t),i=this.#e.length,l=c(e),n=l>=0?l:i+l,o=n<0||n>=i?-1:n;if(o===this.size||a&&o===this.size-1||-1===o)return this.set(t,s),this;let d=this.size+ +!a;l<0&&n++;let u=[...this.#e],m=!1;for(let e=n;e<d;e++)if(n===e){let i=u[e];u[e]===t&&(i=u[e+1]),a&&this.delete(t),r=this.get(i),this.set(t,s)}else{m||u[e-1]!==t||(m=!0);let s=u[m?e:e-1],a=r;r=this.get(s),this.delete(s),this.set(s,a)}return this}with(t,s,r){let a=new e(this);return a.insert(t,s,r),a}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r,t,s)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,s){let r=this.#e.indexOf(e);return -1===r?this:this.insert(r+1,t,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=o(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=o(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return o(this.#e,e)}from(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let s=this.indexOf(e);if(-1===s)return;let r=s+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return r;s++}}findIndex(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return s;s++}return -1}filter(t,s){let r=[],a=0;for(let e of this)Reflect.apply(t,s,[e,a,this])&&r.push(e),a++;return new e(r)}map(t,s){let r=[],a=0;for(let e of this)r.push([e[0],Reflect.apply(t,s,[e,a,this])]),a++;return new e(r)}reduce(...e){let[t,s]=e,r=0,a=s??this.at(0);for(let s of this)a=0===r&&1===e.length?s:Reflect.apply(t,this,[a,s,r,this]),r++;return a}reduceRight(...e){let[t,s]=e,r=s??this.at(-1);for(let s=this.size-1;s>=0;s--){let a=this.at(s);r=s===this.size-1&&1===e.length?a:Reflect.apply(t,this,[r,a,s,this])}return r}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let s=this.keyAt(e),r=this.get(s);t.set(s,r)}return t}toSpliced(...t){let s=[...this.entries()];return s.splice(...t),new e(s)}slice(t,s){let r=new e,a=this.size-1;if(void 0===t)return r;t<0&&(t+=this.size),void 0!==s&&s>0&&(a=s-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),s=this.get(t);r.set(t,s)}return r}every(e,t){let s=0;for(let r of this){if(!Reflect.apply(e,t,[r,s,this]))return!1;s++}return!0}some(e,t){let s=0;for(let r of this){if(Reflect.apply(e,t,[r,s,this]))return!0;s++}return!1}}),e.s(["createCollection",()=>l])},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},81846,e=>{"use strict";var t=e.i(20314),s=e.i(94237),r=e.i(31777);let a=(0,s.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:e,variant:s,...i}){return(0,t.jsx)("div",{className:(0,r.cn)(a({variant:s}),e),...i})}e.s(["Badge",()=>i])},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])},68304,51080,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(91967),a=e.i(22528),i=e.i(87342),l=e.i(5978),n=e.i(13123),o=e.i(87620),c=e.i(29297),d=e.i(36589),u=e.i(66033),m="rovingFocusGroup.onEntryFocus",f={bubbles:!1,cancelable:!0},h="RovingFocusGroup",[x,p,g]=(0,i.createCollection)(h),[v,b]=(0,a.createContextScope)(h,[g]),[y,j]=v(h),k=s.forwardRef((e,s)=>(0,t.jsx)(x.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(x.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,t.jsx)(w,{...e,ref:s})})}));k.displayName=h;var w=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,orientation:n,loop:x=!1,dir:g,currentTabStopId:v,defaultCurrentTabStopId:b,onCurrentTabStopIdChange:j,onEntryFocus:k,preventScrollOnEntryFocus:w=!1,...N}=e,C=s.useRef(null),T=(0,l.useComposedRefs)(a,C),I=(0,u.useDirection)(g),[S,A]=(0,d.useControllableState)({prop:v,defaultProp:b??null,onChange:j,caller:h}),[z,E]=s.useState(!1),M=(0,c.useCallbackRef)(k),D=p(i),L=s.useRef(!1),[P,F]=s.useState(0);return s.useEffect(()=>{let e=C.current;if(e)return e.addEventListener(m,M),()=>e.removeEventListener(m,M)},[M]),(0,t.jsx)(y,{scope:i,orientation:n,dir:I,loop:x,currentTabStopId:S,onItemFocus:s.useCallback(e=>A(e),[A]),onItemShiftTab:s.useCallback(()=>E(!0),[]),onFocusableItemAdd:s.useCallback(()=>F(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>F(e=>e-1),[]),children:(0,t.jsx)(o.Primitive.div,{tabIndex:z||0===P?-1:0,"data-orientation":n,...N,ref:T,style:{outline:"none",...e.style},onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,()=>{L.current=!0}),onFocus:(0,r.composeEventHandlers)(e.onFocus,e=>{let t=!L.current;if(e.target===e.currentTarget&&t&&!z){let t=new CustomEvent(m,f);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=D().filter(e=>e.focusable);R([e.find(e=>e.active),e.find(e=>e.id===S),...e].filter(Boolean).map(e=>e.ref.current),w)}}L.current=!1}),onBlur:(0,r.composeEventHandlers)(e.onBlur,()=>E(!1))})})}),N="RovingFocusGroupItem",C=s.forwardRef((e,a)=>{let{__scopeRovingFocusGroup:i,focusable:l=!0,active:c=!1,tabStopId:d,children:u,...m}=e,f=(0,n.useId)(),h=d||f,g=j(N,i),v=g.currentTabStopId===h,b=p(i),{onFocusableItemAdd:y,onFocusableItemRemove:k,currentTabStopId:w}=g;return s.useEffect(()=>{if(l)return y(),()=>k()},[l,y,k]),(0,t.jsx)(x.ItemSlot,{scope:i,id:h,focusable:l,active:c,children:(0,t.jsx)(o.Primitive.span,{tabIndex:v?0:-1,"data-orientation":g.orientation,...m,ref:a,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l?g.onItemFocus(h):e.preventDefault()}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>g.onItemFocus(h)),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void g.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,s){var r;let a=(r=e.key,"rtl"!==s?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return T[a]}(e,g.orientation,g.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=b().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var s,r;"prev"===t&&a.reverse();let i=a.indexOf(e.currentTarget);a=g.loop?(s=a,r=i+1,s.map((e,t)=>s[(r+t)%s.length])):a.slice(i+1)}setTimeout(()=>R(a))}}),children:"function"==typeof u?u({isCurrentTabStop:v,hasTabStop:null!=w}):u})})});C.displayName=N;var T={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function R(e,t=!1){let s=document.activeElement;for(let r of e)if(r===s||(r.focus({preventScroll:t}),document.activeElement!==s))return}e.s(["Item",()=>C,"Root",()=>k,"createRovingFocusGroupScope",()=>b],51080);var I=e.i(85995),S="Tabs",[A,z]=(0,a.createContextScope)(S,[b]),E=b(),[M,D]=A(S),L=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:a,onValueChange:i,defaultValue:l,orientation:c="horizontal",dir:m,activationMode:f="automatic",...h}=e,x=(0,u.useDirection)(m),[p,g]=(0,d.useControllableState)({prop:a,onChange:i,defaultProp:l??"",caller:S});return(0,t.jsx)(M,{scope:r,baseId:(0,n.useId)(),value:p,onValueChange:g,orientation:c,dir:x,activationMode:f,children:(0,t.jsx)(o.Primitive.div,{dir:x,"data-orientation":c,...h,ref:s})})});L.displayName=S;var P="TabsList",F=s.forwardRef((e,s)=>{let{__scopeTabs:r,loop:a=!0,...i}=e,l=D(P,r),n=E(r);return(0,t.jsx)(k,{asChild:!0,...n,orientation:l.orientation,dir:l.dir,loop:a,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...i,ref:s})})});F.displayName=P;var O="TabsTrigger",B=s.forwardRef((e,s)=>{let{__scopeTabs:a,value:i,disabled:l=!1,...n}=e,c=D(O,a),d=E(a),u=V(c.baseId,i),m=K(c.baseId,i),f=i===c.value;return(0,t.jsx)(C,{asChild:!0,...d,focusable:!l,active:f,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:u,...n,ref:s,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(i)}),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(i)}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;f||l||!e||c.onValueChange(i)})})})});B.displayName=O;var H="TabsContent",q=s.forwardRef((e,r)=>{let{__scopeTabs:a,value:i,forceMount:l,children:n,...c}=e,d=D(H,a),u=V(d.baseId,i),m=K(d.baseId,i),f=i===d.value,h=s.useRef(f);return s.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(I.Presence,{present:l||f,children:({present:s})=>(0,t.jsx)(o.Primitive.div,{"data-state":f?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":u,hidden:!s,id:m,tabIndex:0,...c,ref:r,style:{...e.style,animationDuration:h.current?"0s":void 0},children:s&&n})})});function V(e,t){return`${e}-trigger-${t}`}function K(e,t){return`${e}-content-${t}`}q.displayName=H,e.s(["Content",()=>q,"List",()=>F,"Root",()=>L,"Tabs",()=>L,"TabsContent",()=>q,"TabsList",()=>F,"TabsTrigger",()=>B,"Trigger",()=>B,"createTabsScope",()=>z],43133);var $=e.i(43133),$=$,U=e.i(31777);let G=$.Root,_=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.List,{ref:r,className:(0,U.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",e),...s}));_.displayName=$.List.displayName;let W=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Trigger,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",e),...s}));W.displayName=$.Trigger.displayName;let J=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)($.Content,{ref:r,className:(0,U.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",e),...s}));J.displayName=$.Content.displayName,e.s(["Tabs",()=>G,"TabsContent",()=>J,"TabsList",()=>_,"TabsTrigger",()=>W],68304)},81181,e=>{"use strict";var t=e.i(95230);e.s(["Download",()=>t.default])},95812,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812)},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},44412,e=>{"use strict";var t=e.i(20314),s=e.i(79054),r=e.i(81975),a=e.i(68304),i=e.i(31777),l=e.i(83428),n=e.i(83902),o=e.i(81181),c=e.i(3645);let d=(0,c.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var u=e.i(38573),m=e.i(49228),f=e.i(54277),h=e.i(95812),x=e.i(35e3);let p=(0,c.default)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);var g=e.i(35364),v=e.i(2828),b=e.i(33548),y=e.i(23925),j=e.i(30702),k=e.i(11495);let w={linux:"Linux",darwin:"macOS",win32:"Windows"},N={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function C({status:e}){return"available"===e?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-emerald-100 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400",children:[(0,t.jsx)(y.Check,{className:"h-3 w-3"}),"Installed"]}):"error"===e?(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-red-100 px-2 py-0.5 text-xs font-medium text-red-700 dark:bg-red-900/30 dark:text-red-400",children:"Error"}):(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",children:"Missing"})}function T({tool:e,open:r,onClose:a,onRefresh:i,autoStart:c}){let[u,m]=(0,s.useState)(!1),[f,h]=(0,s.useState)(!1),{logs:x,status:v,startInstall:T}=function(e){let[t,r]=(0,s.useState)([]),[a,i]=(0,s.useState)("idle"),[l,n]=(0,s.useState)(null),o=(0,s.useRef)(null),c=(0,s.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,s.useEffect)(()=>c,[c]),{logs:t,status:a,result:l,startInstall:(0,s.useCallback)(()=>{c(),r([]),n(null),i("streaming");let t=new EventSource(`/api/tools/${e}/install/stream`);o.current=t,t.onmessage=e=>{r(t=>[...t,e.data])},t.addEventListener("done",e=>{let t=JSON.parse(e.data);n(t),i("error"===t.status?"error":"done"),c()}),t.onerror=()=>{i("error"),c()}},[e,c])}}(e.id),R=(0,s.useRef)(null),I=(0,s.useRef)(!0),S=(0,s.useRef)(!1),A="available"===e.status.status,z="error"===e.status.status,E=A&&!!e.openDirectory,M=!A&&!z&&e.autoInstall;async function D(){h(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{h(!1)}}(0,s.useEffect)(()=>{r&&c&&M&&"idle"===v&&!S.current&&(S.current=!0,T()),r||(S.current=!1)},[r,c,M,v,T]);let L=(0,s.useCallback)(()=>{let e=R.current;e&&(I.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,s.useEffect)(()=>{I.current&&R.current&&(R.current.scrollTop=R.current.scrollHeight)},[x,v]),(0,s.useEffect)(()=>{"done"===v&&i&&i()},[v,i]);let P=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 pr-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:24,height:24,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-6 w-6 shrink-0"}),(0,t.jsx)("h2",{className:"text-base font-bold",children:e.name}),(0,t.jsx)(C,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let s=N[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[10px]",children:[(0,t.jsx)(r,{className:"h-3 w-3"}),s.label]},e)})})]});return(0,t.jsx)(k.BaseDrawer,{open:r,onClose:a,size:"md",modal:!0,title:e.name,header:P,"data-testid":"tool-detail-drawer",children:(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-4 overflow-y-auto p-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),e.author||e.platforms?(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",children:[e.author?(0,t.jsxs)("span",{className:"text-muted-foreground",children:["by"," ",e.website?(0,t.jsx)("a",{href:e.website,target:"_blank",rel:"noopener noreferrer",className:"text-foreground hover:underline",children:e.author}):(0,t.jsx)("span",{className:"text-foreground",children:e.author})]}):null,e.platforms&&e.platforms.length>0?(0,t.jsx)("span",{className:"text-muted-foreground",children:e.platforms.map(e=>w[e]??e).join(" · ")}):null]}):null,e.installCommand?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install command"}),(0,t.jsxs)("div",{className:"relative rounded-md bg-zinc-900 text-zinc-100",children:[(0,t.jsx)("pre",{className:"overflow-x-auto px-3 py-2.5 pr-16 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(g.Button,{variant:"ghost",size:"sm",className:"absolute top-1.5 right-1.5 h-7 cursor-pointer px-2 text-zinc-400 hover:text-zinc-100",onClick:function(){e.installCommand&&navigator.clipboard.writeText(e.installCommand).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},"aria-label":u?"Copied!":"Copy install command",children:[u?(0,t.jsx)(y.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(b.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ml-1 text-[10px]",children:u?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[M?(0,t.jsxs)(g.Button,{size:"sm",onClick:T,disabled:"streaming"===v,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===v?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o.Download,{className:"mr-1.5 h-3.5 w-3.5"}),"streaming"===v?"Installing...":"Install"]}):null,E?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>void D(),disabled:f,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[f?(0,t.jsx)(l.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(n.Rocket,{className:"mr-1.5 h-3.5 w-3.5"}),"Launch"]}):null,e.documentationUrl?(0,t.jsx)(g.Button,{variant:"outline",size:"sm",className:"cursor-pointer",asChild:!0,children:(0,t.jsxs)("a",{href:e.documentationUrl,target:"_blank",rel:"noopener noreferrer",children:["Docs",(0,t.jsx)(j.ExternalLink,{className:"ml-1 h-3 w-3"})]})}):null]}),("streaming"===v||"done"===v||"error"===v)&&x.length>0?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs font-semibold tracking-wide uppercase",children:"Install log"}),(0,t.jsxs)("div",{ref:R,onScroll:L,className:"max-h-60 overflow-auto rounded-md bg-zinc-900 p-3 font-mono text-xs leading-relaxed text-zinc-100","data-testid":"tool-install-log",children:[x.map((e,s)=>(0,t.jsx)("div",{className:"break-all whitespace-pre-wrap",children:e},s)),"done"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===v?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-red-400",children:"Installation failed"}):null]})]}):null]})})}let R={ide:{label:"IDE",icon:d},"cli-agent":{label:"CLI Agent",icon:u.Terminal},vcs:{label:"VCS",icon:m.GitBranch},terminal:{label:"Terminal",icon:u.Terminal}};function I({tool:e,onRefresh:r,className:a}){let[c,u]=(0,s.useState)(!1),[m,b]=(0,s.useState)(!1),[y,j]=(0,s.useTransition)(),k="available"===e.status.status,w="error"===e.status.status,N=k&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",onClick:function(){b(!1),u(!0)},className:(0,i.cn)("bg-card group flex h-30 w-full cursor-pointer flex-col rounded-lg border p-3 transition-shadow hover:shadow-md",a),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:20,height:20,className:"shrink-0 dark:invert"}):(0,t.jsx)(p,{className:"text-muted-foreground h-5 w-5 shrink-0"}),(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"truncate text-sm font-bold",children:e.name})]}),(0,t.jsx)("div",{"data-testid":"tool-card-tags",className:"flex shrink-0 items-center gap-1",children:e.tags.map(e=>{let s=R[e]??{label:e,icon:d},r=s.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[9px]",children:[(0,t.jsx)(r,{className:"h-2.5 w-2.5"}),s.label]},e)})})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground mt-1 truncate text-xs",children:e.summary}),(0,t.jsxs)("div",{className:"mt-auto flex items-center justify-between pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 truncate text-[10px] text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(f.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):k?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(x.CheckCircle2,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-[10px]",children:[(0,t.jsx)(h.Circle,{className:"h-3 w-3"}),"Not installed"]}),e.required?(0,t.jsx)(v.TooltipProvider,{children:(0,t.jsxs)(v.Tooltip,{children:[(0,t.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"rounded bg-amber-100 px-1.5 py-0.5 text-[9px] font-medium text-amber-700 dark:bg-amber-900/50 dark:text-amber-400",children:"Required"})}),(0,t.jsx)(v.TooltipContent,{side:"top",children:"This tool is required for Shep to function properly"})]})}):null]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:k&&N?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:function(t){t.stopPropagation(),j(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:y,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[y?(0,t.jsx)(l.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(n.Rocket,{className:"mr-1 h-3 w-3"}),"Launch"]}):k||w?null:(0,t.jsxs)(g.Button,{size:"sm",variant:"default",onClick:function(t){t.stopPropagation(),b(e.autoInstall),u(!0)},"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[(0,t.jsx)(o.Download,{className:"mr-1 h-3 w-3"}),"Install"]})})]})]}),(0,t.jsx)(T,{tool:e,open:c,onClose:()=>u(!1),onRefresh:r,autoStart:m})]})}let S={all:()=>!0,ide:e=>e.tags.includes("ide"),"cli-agent":e=>e.tags.includes("cli-agent"),vcs:e=>e.tags.includes("vcs"),terminal:e=>e.tags.includes("terminal")};function A({tools:e,className:l}){let[n,o]=(0,s.useState)(e),[c,d]=(0,s.useState)("all"),u=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),m=n.filter(S[c]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,i.cn)("space-y-4",l),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(r.Wrench,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-[10px]",children:[n.filter(e=>"available"===e.status.status).length,"/",n.length," installed"]})]}),(0,t.jsxs)(a.Tabs,{value:c,onValueChange:e=>d(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(a.TabsList,{className:"h-7",children:[(0,t.jsx)(a.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(a.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(a.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(a.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(a.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(a.TabsContent,{value:c,className:"mt-3",children:0===m.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-12 text-center",children:[(0,t.jsx)(r.Wrench,{className:"mb-2 h-6 w-6 opacity-20"}),(0,t.jsx)("p",{className:"text-xs",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:m.map(e=>(0,t.jsx)(I,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>A],44412)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81258,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},22193,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getDeploymentId:function(){return u},getDeploymentIdQueryOrEmptyString:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(){return!1}function i(){return""}},34558,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54809,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return l},RedirectType:function(){return a},isRedirectError:function(){return c}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let i=e.r(34558),l="NEXT_REDIRECT";var a=((n={}).push="push",n.replace="replace",n);function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===l&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in i.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65064,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class i{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let l="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return l?new l:new i}function c(e){return l?l.bind(e):i.bind(e)}function d(){return l?l.snapshot():function(e,...t){return e(...t)}}},82157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return i},FLIGHT_HEADERS:function(){return p},NEXT_ACTION_NOT_FOUND_HEADER:function(){return j},NEXT_ACTION_REVALIDATED_HEADER:function(){return T},NEXT_DID_POSTPONE_HEADER:function(){return R},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return d},NEXT_HTML_REQUEST_ID_HEADER:function(){return v},NEXT_IS_PRERENDER_HEADER:function(){return g},NEXT_REQUEST_ID_HEADER:function(){return h},NEXT_REWRITTEN_PATH_HEADER:function(){return b},NEXT_REWRITTEN_QUERY_HEADER:function(){return O},NEXT_ROUTER_PREFETCH_HEADER:function(){return a},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return c},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return l},NEXT_RSC_UNION_QUERY:function(){return E},NEXT_URL:function(){return s},RSC_CONTENT_TYPE_HEADER:function(){return _},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",i="next-action",l="next-router-state-tree",a="next-router-prefetch",c="next-router-segment-prefetch",d="next-hmr-refresh",f="__next_hmr_refresh_hash__",s="next-url",_="text/x-component",p=[u,l,a,d,c],E="_rsc",y="x-nextjs-stale-time",R="x-nextjs-postponed",b="x-nextjs-rewritten-path",O="x-nextjs-rewritten-query",g="x-nextjs-prerender",j="x-nextjs-action-not-found",h="x-nextjs-request-id",v="x-nextjs-html-request-id",T="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5161,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return s},PAGE_SEGMENT_KEY:function(){return d},addSearchParamsIfPageSegment:function(){return a},computeSelectedLayoutSegment:function(){return c},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return o;let l=u(i[0]);return!l||l.startsWith(d)?o:(o.push(l),e(i,r,!1,o))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function l(e){return e.startsWith("@")&&"@children"!==e}function a(e,t){if(e.includes(d)){let e=JSON.stringify(t);return"{}"!==e?d+"?"+e:d}return e}function c(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let d="__PAGE__",f="__DEFAULT__",s="/_not-found"},50389,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},89637,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(65064).createAsyncLocalStorage)()},54293,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(89637)},25133,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return a},getRedirectStatusCodeFromError:function(){return _},getRedirectTypeFromError:function(){return s},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return d},redirect:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(34558),i=e.r(54809),l="u"<typeof window?e.r(54293).actionAsyncStorage:void 0;function a(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(i.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${i.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function c(e,t){throw a(e,t??=l?.getStore()?.isAction?i.RedirectType.push:i.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function d(e,t=i.RedirectType.replace){throw a(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,i.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function s(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function _(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18152,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return a},LayoutRouterContext:function(){return l},MissingSlotContext:function(){return d},TemplateContext:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(81258)._(e.r(79054)),i=u.default.createContext(null),l=u.default.createContext(null),a=u.default.createContext(null),c=u.default.createContext(null),d=u.default.createContext(new Set)},9338,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(79054),o=e.r(14869);function u(){return!function(){if("u"<typeof window){let{workUnitAsyncStorage:t}=e.r(3163),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},62949,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return i},useNavFailureHandler:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(79054);let u=e.r(32801);function i(e){return!!(e&&"u">typeof window)&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function l(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},86762,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(58988).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},57351,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return p},ErrorBoundaryHandler:function(){return _}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(81258),i=e.r(20314),l=u._(e.r(79054)),a=e.r(9338),c=e.r(86092);e.r(62949);let d=e.r(86762),f=e.r(41608),s="u">typeof window&&(0,f.isBot)(window.navigator.userAgent);class _ extends l.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,c.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,i.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function p({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,a.useUntrackedPathname)();return e?(0,i.jsx)(_,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,i.jsx)(i.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},10706,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return _},RedirectErrorBoundary:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066),i=e.r(20314),l=u._(e.r(79054)),a=e.r(67013),c=e.r(25133),d=e.r(54809);function f({redirect:e,reset:t,redirectType:r}){let n=(0,a.useRouter)();return(0,l.useEffect)(()=>{l.default.startTransition(()=>{r===d.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class s extends l.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,d.isRedirectError)(e)){let t=(0,c.getURLFromRedirectError)(e),r=(0,c.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,i.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function _({children:e}){let t=(0,a.useRouter)();return(0,i.jsx)(s,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99271,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66658,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return l},OutletBoundary:function(){return c},RootLayoutBoundary:function(){return d},ViewportBoundary:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(42771),i={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},l=i[u.METADATA_BOUNDARY_NAME.slice(0)],a=i[u.VIEWPORT_BOUNDARY_NAME.slice(0)],c=i[u.OUTLET_BOUNDARY_NAME.slice(0)],d=i[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},84210,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=e.r(81258)._(e.r(79054)).default.createContext({})},42726,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(20314),o=e.r(86762),u={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},i={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},l=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:u,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:i,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:i,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(31406),i=e.i(3214),n=e.i(91925),o=e.i(94237),s=e.i(3645);let l=(0,s.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var d=e.i(5240),c=e.i(31777),u=e.i(35364);e.i(98127),e.i(25235);var p=e.i(48249),f=e.i(90033);function h({...e}){return(0,t.jsx)(f.Dialog.Root,{"data-slot":"sheet",...e})}function m({...e}){return(0,t.jsx)(f.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function g({className:e,...a}){return(0,t.jsx)(f.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,c.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...a})}function b({className:e,children:a,side:r="right",showCloseButton:i=!0,...n}){return(0,t.jsxs)(m,{children:[(0,t.jsx)(g,{}),(0,t.jsxs)(f.Dialog.Content,{"data-slot":"sheet-content",className:(0,c.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===r&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===r&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===r&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...n,children:[a,i?(0,t.jsxs)(f.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(p.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function v({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,c.cn)("flex flex-col gap-1.5 p-4",e),...a})}function x({className:e,...a}){return(0,t.jsx)(f.Dialog.Title,{"data-slot":"sheet-title",className:(0,c.cn)("text-foreground font-semibold",e),...a})}function w({className:e,...a}){return(0,t.jsx)(f.Dialog.Description,{"data-slot":"sheet-description",className:(0,c.cn)("text-muted-foreground text-sm",e),...a})}var y=e.i(2828);let C="shep-sidebar-open",j=a.createContext(null);function S(){let e=a.useContext(j);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function N({defaultOpen:e=!0,open:r,onOpenChange:i,className:n,style:o,children:s,...l}){let d=function(){let[e,t]=a.useState(void 0);return a.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[u,p]=a.useState(!1),[f,h]=a.useState(e),m=r??f;a.useEffect(()=>{if(void 0!==r)return;let t=function(e){try{let t=localStorage.getItem(C);if("true"===t)return!0;if("false"===t)return!1;return e}catch{return e}}(e);t!==e&&h(t)},[]);let g=a.useCallback(e=>{let t="function"==typeof e?e(m):e;i?i(t):h(t);try{localStorage.setItem(C,String(t))}catch{}},[i,m]),b=a.useCallback(()=>d?p(e=>!e):g(e=>!e),[d,g,p]);a.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[b]);let v=m?"expanded":"collapsed",x=a.useMemo(()=>({state:v,open:m,setOpen:g,isMobile:d,openMobile:u,setOpenMobile:p,toggleSidebar:b}),[v,m,g,d,u,p,b]);return(0,t.jsx)(j.Provider,{value:x,children:(0,t.jsx)(y.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...o},className:(0,c.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",n),...l,children:s})})})}function k({side:e="left",variant:a="sidebar",collapsible:r="offcanvas",className:i,children:n,...o}){let{isMobile:s,state:l,openMobile:d,setOpenMobile:u}=S();return"none"===r?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,c.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...o,children:n}):s?(0,t.jsx)(h,{open:d,onOpenChange:u,...o,children:(0,t.jsxs)(b,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(v,{className:"sr-only",children:[(0,t.jsx)(x,{children:"Sidebar"}),(0,t.jsx)(w,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:n})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":l,"data-collapsible":"collapsed"===l?r:"","data-variant":a,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,c.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===a||"inset"===a?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,c.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===a||"inset"===a?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...o,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:n})})]})}function E({className:e,...a}){let{toggleSidebar:r}=S();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:(0,c.cn)("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...a})}function T({className:e,...a}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,c.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...a})}function R({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,c.cn)("flex flex-col gap-2 p-2",e),...a})}function P({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,c.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...a})}function A({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,c.cn)("relative flex w-full min-w-0 flex-col p-2",e),...a})}function L({className:e,asChild:a=!1,...r}){let i=a?d.Slot.Root:"div";return(0,t.jsx)(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,c.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...r})}function D({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,c.cn)("w-full text-sm",e),...a})}function z({className:e,...a}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,c.cn)("flex w-full min-w-0 flex-col gap-1",e),...a})}function M({className:e,...a}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,c.cn)("group/menu-item relative",e),...a})}let _=(0,o.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function I({asChild:e=!1,isActive:a=!1,variant:r="default",size:i="default",tooltip:n,className:o,...s}){let l=e?d.Slot.Root:"button",{isMobile:u,state:p}=S(),f=(0,t.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":a,className:(0,c.cn)(_({variant:r,size:i}),o),...s});return n?("string"==typeof n&&(n={children:n}),(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:f}),(0,t.jsx)(y.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==p||u,...n})]})):f}let H=(0,s.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"}]]);var W=e.i(81975),O=e.i(12103);let F=(0,s.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var $=e.i(76223),B=e.i(87620),U=e.i(85995),X=e.i(22528),V=e.i(5978),Y=e.i(29297),q=e.i(66033),Z=e.i(5192),K=e.i(27069),G=e.i(91967),J="ScrollArea",[Q,ee]=(0,X.createContextScope)(J),[et,ea]=Q(J),er=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,type:n="hover",dir:o,scrollHideDelay:s=600,...l}=e,[d,c]=a.useState(null),[u,p]=a.useState(null),[f,h]=a.useState(null),[m,g]=a.useState(null),[b,v]=a.useState(null),[x,w]=a.useState(0),[y,C]=a.useState(0),[j,S]=a.useState(!1),[N,k]=a.useState(!1),E=(0,V.useComposedRefs)(r,e=>c(e)),T=(0,q.useDirection)(o);return(0,t.jsx)(et,{scope:i,type:n,dir:T,scrollHideDelay:s,scrollArea:d,viewport:u,onViewportChange:p,content:f,onContentChange:h,scrollbarX:m,onScrollbarXChange:g,scrollbarXEnabled:j,onScrollbarXEnabledChange:S,scrollbarY:b,onScrollbarYChange:v,scrollbarYEnabled:N,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:C,children:(0,t.jsx)(B.Primitive.div,{dir:T,...l,ref:E,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":y+"px",...e.style}})})});er.displayName=J;var ei="ScrollAreaViewport",en=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,children:n,nonce:o,...s}=e,l=ea(ei,i),d=a.useRef(null),c=(0,V.useComposedRefs)(r,d,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:o}),(0,t.jsx)(B.Primitive.div,{"data-radix-scroll-area-viewport":"",...s,ref:c,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:n})})]})});en.displayName=ei;var eo="ScrollAreaScrollbar",es=a.forwardRef((e,r)=>{let{forceMount:i,...n}=e,o=ea(eo,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=o,d="horizontal"===e.orientation;return a.useEffect(()=>(d?s(!0):l(!0),()=>{d?s(!1):l(!1)}),[d,s,l]),"hover"===o.type?(0,t.jsx)(el,{...n,ref:r,forceMount:i}):"scroll"===o.type?(0,t.jsx)(ed,{...n,ref:r,forceMount:i}):"auto"===o.type?(0,t.jsx)(ec,{...n,ref:r,forceMount:i}):"always"===o.type?(0,t.jsx)(eu,{...n,ref:r}):null});es.displayName=eo;var el=a.forwardRef((e,r)=>{let{forceMount:i,...n}=e,o=ea(eo,e.__scopeScrollArea),[s,l]=a.useState(!1);return a.useEffect(()=>{let e=o.scrollArea,t=0;if(e){let a=()=>{window.clearTimeout(t),l(!0)},r=()=>{t=window.setTimeout(()=>l(!1),o.scrollHideDelay)};return e.addEventListener("pointerenter",a),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",a),e.removeEventListener("pointerleave",r)}}},[o.scrollArea,o.scrollHideDelay]),(0,t.jsx)(U.Presence,{present:i||s,children:(0,t.jsx)(ec,{"data-state":s?"visible":"hidden",...n,ref:r})})}),ed=a.forwardRef((e,r)=>{var i;let{forceMount:n,...o}=e,s=ea(eo,e.__scopeScrollArea),l="horizontal"===e.orientation,d=eR(()=>u("SCROLL_END"),100),[c,u]=(i={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},a.useReducer((e,t)=>i[e][t]??e,"hidden"));return a.useEffect(()=>{if("idle"===c){let e=window.setTimeout(()=>u("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,s.scrollHideDelay,u]),a.useEffect(()=>{let e=s.viewport,t=l?"scrollLeft":"scrollTop";if(e){let a=e[t],r=()=>{let r=e[t];a!==r&&(u("SCROLL"),d()),a=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[s.viewport,l,u,d]),(0,t.jsx)(U.Presence,{present:n||"hidden"!==c,children:(0,t.jsx)(eu,{"data-state":"hidden"===c?"hidden":"visible",...o,ref:r,onPointerEnter:(0,G.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,G.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),ec=a.forwardRef((e,r)=>{let i=ea(eo,e.__scopeScrollArea),{forceMount:n,...o}=e,[s,l]=a.useState(!1),d="horizontal"===e.orientation,c=eR(()=>{if(i.viewport){let e=i.viewport.offsetWidth<i.viewport.scrollWidth,t=i.viewport.offsetHeight<i.viewport.scrollHeight;l(d?e:t)}},10);return eP(i.viewport,c),eP(i.content,c),(0,t.jsx)(U.Presence,{present:n||s,children:(0,t.jsx)(eu,{"data-state":s?"visible":"hidden",...o,ref:r})})}),eu=a.forwardRef((e,r)=>{let{orientation:i="vertical",...n}=e,o=ea(eo,e.__scopeScrollArea),s=a.useRef(null),l=a.useRef(0),[d,c]=a.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=eS(d.viewport,d.content),p={...n,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>s.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function f(e,t){return function(e,t,a,r="ltr"){let i=eN(a),n=t||i/2,o=a.scrollbar.paddingStart+n,s=a.scrollbar.size-a.scrollbar.paddingEnd-(i-n),l=a.content-a.viewport;return eE([o,s],"ltr"===r?[0,l]:[-1*l,0])(e)}(e,l.current,d,t)}return"horizontal"===i?(0,t.jsx)(ep,{...p,ref:r,onThumbPositionChange:()=>{if(o.viewport&&s.current){let e=ek(o.viewport.scrollLeft,d,o.dir);s.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollLeft=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollLeft=f(e,o.dir))}}):"vertical"===i?(0,t.jsx)(ef,{...p,ref:r,onThumbPositionChange:()=>{if(o.viewport&&s.current){let e=ek(o.viewport.scrollTop,d);s.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{o.viewport&&(o.viewport.scrollTop=e)},onDragScroll:e=>{o.viewport&&(o.viewport.scrollTop=f(e))}}):null}),ep=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:n,...o}=e,s=ea(eo,e.__scopeScrollArea),[l,d]=a.useState(),c=a.useRef(null),u=(0,V.useComposedRefs)(r,c,s.onScrollbarXChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(eg,{"data-orientation":"horizontal",...o,ref:u,sizes:i,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":eN(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,a)=>{if(s.viewport){var r,i;let n=s.viewport.scrollLeft+t.deltaX;e.onWheelScroll(n),r=n,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&n({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ej(l.paddingLeft),paddingEnd:ej(l.paddingRight)}})}})}),ef=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:n,...o}=e,s=ea(eo,e.__scopeScrollArea),[l,d]=a.useState(),c=a.useRef(null),u=(0,V.useComposedRefs)(r,c,s.onScrollbarYChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(eg,{"data-orientation":"vertical",...o,ref:u,sizes:i,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":eN(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,a)=>{if(s.viewport){var r,i;let n=s.viewport.scrollTop+t.deltaY;e.onWheelScroll(n),r=n,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&s.viewport&&l&&n({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ej(l.paddingTop),paddingEnd:ej(l.paddingBottom)}})}})}),[eh,em]=Q(eo),eg=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,sizes:n,hasThumb:o,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:d,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:p,onResize:f,...h}=e,m=ea(eo,i),[g,b]=a.useState(null),v=(0,V.useComposedRefs)(r,e=>b(e)),x=a.useRef(null),w=a.useRef(""),y=m.viewport,C=n.content-n.viewport,j=(0,Y.useCallbackRef)(p),S=(0,Y.useCallbackRef)(c),N=eR(f,10);function k(e){x.current&&u({x:e.clientX-x.current.left,y:e.clientY-x.current.top})}return a.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&j(e,C)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[y,g,C,j]),a.useEffect(S,[n,S]),eP(g,N),eP(m.content,N),(0,t.jsx)(eh,{scope:i,scrollbar:g,hasThumb:o,onThumbChange:(0,Y.useCallbackRef)(s),onThumbPointerUp:(0,Y.useCallbackRef)(l),onThumbPositionChange:S,onThumbPointerDown:(0,Y.useCallbackRef)(d),children:(0,t.jsx)(B.Primitive.div,{...h,ref:v,style:{position:"absolute",...h.style},onPointerDown:(0,G.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),x.current=g.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(e))}),onPointerMove:(0,G.composeEventHandlers)(e.onPointerMove,k),onPointerUp:(0,G.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),x.current=null})})})}),eb="ScrollAreaThumb",ev=a.forwardRef((e,a)=>{let{forceMount:r,...i}=e,n=em(eb,e.__scopeScrollArea);return(0,t.jsx)(U.Presence,{present:r||n.hasThumb,children:(0,t.jsx)(ex,{ref:a,...i})})}),ex=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,style:n,...o}=e,s=ea(eb,i),l=em(eb,i),{onThumbPositionChange:d}=l,c=(0,V.useComposedRefs)(r,e=>l.onThumbChange(e)),u=a.useRef(void 0),p=eR(()=>{u.current&&(u.current(),u.current=void 0)},100);return a.useEffect(()=>{let e=s.viewport;if(e){let t=()=>{p(),u.current||(u.current=eT(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[s.viewport,p,d]),(0,t.jsx)(B.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:(0,G.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),a=e.clientX-t.left,r=e.clientY-t.top;l.onThumbPointerDown({x:a,y:r})}),onPointerUp:(0,G.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});ev.displayName=eb;var ew="ScrollAreaCorner",ey=a.forwardRef((e,a)=>{let r=ea(ew,e.__scopeScrollArea),i=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&i?(0,t.jsx)(eC,{...e,ref:a}):null});ey.displayName=ew;var eC=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,...n}=e,o=ea(ew,i),[s,l]=a.useState(0),[d,c]=a.useState(0),u=!!(s&&d);return eP(o.scrollbarX,()=>{let e=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(e),c(e)}),eP(o.scrollbarY,()=>{let e=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(e),l(e)}),u?(0,t.jsx)(B.Primitive.div,{...n,ref:r,style:{width:s,height:d,position:"absolute",right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:0,...e.style}}):null});function ej(e){return e?parseInt(e,10):0}function eS(e,t){let a=e/t;return isNaN(a)?0:a}function eN(e){let t=eS(e.viewport,e.content),a=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-a)*t,18)}function ek(e,t,a="ltr"){let r=eN(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=t.scrollbar.size-i,o=t.content-t.viewport,s=(0,K.clamp)(e,"ltr"===a?[0,o]:[-1*o,0]);return eE([0,o],[0,n-r])(s)}function eE(e,t){return a=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(a-e[0])}}var eT=(e,t=()=>{})=>{let a={left:e.scrollLeft,top:e.scrollTop},r=0;return!function i(){let n={left:e.scrollLeft,top:e.scrollTop},o=a.left!==n.left,s=a.top!==n.top;(o||s)&&t(),a=n,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function eR(e,t){let r=(0,Y.useCallbackRef)(e),i=a.useRef(0);return a.useEffect(()=>()=>window.clearTimeout(i.current),[]),a.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(r,t)},[r,t])}function eP(e,t){let a=(0,Y.useCallbackRef)(t);(0,Z.useLayoutEffect)(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(a)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,a])}e.s(["Corner",()=>ey,"Root",()=>er,"ScrollArea",()=>er,"ScrollAreaCorner",()=>ey,"ScrollAreaScrollbar",()=>es,"ScrollAreaThumb",()=>ev,"ScrollAreaViewport",()=>en,"Scrollbar",()=>es,"Thumb",()=>ev,"Viewport",()=>en,"createScrollAreaScope",()=>ee],87516);var eA=e.i(87516),eA=eA;function eL({className:e,children:a,...r}){return(0,t.jsxs)(eA.Root,{"data-slot":"scroll-area",className:(0,c.cn)("relative",e),...r,children:[(0,t.jsx)(eA.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:a}),(0,t.jsx)(eD,{}),(0,t.jsx)(eA.Corner,{})]})}function eD({className:e,orientation:a="vertical",...r}){return(0,t.jsx)(eA.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:a,className:(0,c.cn)("flex touch-none p-px transition-colors select-none","vertical"===a&&"h-full w-2.5 border-l border-l-transparent","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:(0,t.jsx)(eA.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var ez=e.i(24035),eM=e.i(8361);function e_({icon:e,label:a,href:r,active:i=!1}){let n=(0,eM.useSoundAction)("navigate");return(0,t.jsx)(M,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(I,{asChild:!0,isActive:i,tooltip:a,children:(0,t.jsxs)(ez.default,{href:r,onClick:()=>n.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:a})]})})})}function eI({className:e}){let{toggleSidebar:a,open:r}=S(),i=(0,eM.useSoundAction)("expand"),n=(0,eM.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,c.cn)("flex",e),children:(0,t.jsx)(u.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{r?n.play():i.play(),a()},"aria-label":r?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(l,{className:"size-4"})})})}function eH({className:e,size:a=24,variant:r="default"}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:a,height:a,className:(0,c.cn)("shrink-0","dev"===r&&"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"})})})}function eW({version:e,branch:r,commitHash:i,isDev:n=!1,packageName:o="@shepai/cli",description:s,instancePath:l}){let d=i?.slice(0,7),{latest:c,updateAvailable:u}=function(e){let[t,r]=(0,a.useState)(null),[i,n]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/npm-version");if(!t.ok)return;let a=await t.json();!e&&a.latest&&r(a.latest)}catch{}finally{e||n(!1)}}(),()=>{e=!0}},[]);let o=null!==t&&function(e,t){let a=e=>e.split("-")[0].split(".").map(Number),r=a(e),i=a(t);for(let e=0;e<3;e++){let t=r[e]??0,a=i[e]??0;if(t>a)return 1;if(t<a)return -1}return 0}(t,e)>0;return{latest:t,updateAvailable:o,loading:i}}(e),{status:p,startUpgrade:f}=function(){let[e,t]=(0,a.useState)("idle"),[r,i]=(0,a.useState)(""),[n,o]=(0,a.useState)(),s=(0,a.useRef)(null),l=(0,a.useRef)(!1),d=(0,a.useCallback)(()=>{if("upgrading"===e||"restarting"===e)return;t("upgrading"),i(""),o(void 0),l.current=!1;let a=new AbortController;return s.current=a,fetch("/api/cli-upgrade",{method:"POST",signal:a.signal}).then(async e=>{if(!e.ok||!e.body){t("error"),o(`Server returned ${e.status}`);return}let a=e.body.getReader(),r=new TextDecoder,n="";for(;;){let{done:e,value:s}=await a.read();if(e)break;let d=(n+=r.decode(s,{stream:!0})).split("\n");for(let e of(n=d.pop()??"",d)){if(e.startsWith("event: restarting")){l.current=!0,t("restarting"),function(e,t){let a=Date.now()+3e4,r=()=>{Date.now()>a||fetch("/api/version",{method:"GET",cache:"no-store"}).then(e=>{e.ok?window.location.reload():setTimeout(r,500)}).catch(()=>{setTimeout(r,500)})};setTimeout(r,500)}(0,0);continue}if(!e.startsWith("event: done")&&e.startsWith("data: ")){let a=e.slice(6);try{let e=JSON.parse(a);"upgraded"===e.status?t("upgraded"):"up-to-date"===e.status?t("up-to-date"):"error"===e.status&&(t("error"),o(e.errorMessage))}catch{i(e=>e+a)}}}}}).catch(e=>{l.current||e instanceof DOMException&&"AbortError"===e.name||(t("error"),o(e instanceof Error?e.message:"Upgrade failed"))}),()=>{a.abort()}},[e]);return{status:e,output:r,errorMessage:n,startUpgrade:d}}(),h=n?`${e}-dev`:`v${e}`,m="upgrading"===p,g="restarting"===p,b="upgraded"===p;return(0,t.jsx)(y.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.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:[h,!u||b||g?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)(y.TooltipContent,{side:"right",className:"max-w-[280px] space-y-1 p-3 text-left",children:[(0,t.jsx)("div",{className:"mb-1.5 text-xs font-semibold",children:o}),s?(0,t.jsx)("div",{className:"text-[10px] leading-snug opacity-70",children:s}):null,(0,t.jsxs)("div",{className:"border-t border-white/10 pt-1.5",children:[(0,t.jsx)(eO,{label:"Version",value:h}),n&&r?(0,t.jsx)(eO,{label:"Branch",value:r}):null,n&&d?(0,t.jsx)(eO,{label:"Commit",value:d,mono:!0}):null,n&&l?(0,t.jsx)(eO,{label:"Path",value:l,mono:!0}):null,c?(0,t.jsx)(eO,{label:"Latest",value:`v${c}`,highlight:u}):null]}),g?(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..."})}):b?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-success",children:"Upgraded successfully"})}):"error"===p?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-red-400","data-testid":"upgrade-error",children:"Upgrade failed"})}):u?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("button",{type:"button",onClick:f,disabled:m||g,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:m?"Upgrading...":g?"Restarting...":`Upgrade to v${c}`})}):null]})]})})}function eO({label:e,value:a,highlight:r,mono:i}){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:[r?"font-medium text-emerald-400":"",i||!r?"font-mono":""].filter(Boolean).join(" "),children:a})]})}function eF({startedAt:e}){let[r,i]=(0,a.useState)(()=>Date.now()-e);return(0,a.useEffect)(()=>{let t=setInterval(()=>{(0,a.startTransition)(()=>i(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 a=Math.floor(t/60);return`${String(a).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(r)})}var e$=e.i(51251),eB=e.i(83428),eU=e.i(10942),eX=e.i(94819),eV=e.i(54277);let eY={"action-needed":{icon:e$.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:eB.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},blocked:{icon:eX.Ban,iconClass:"text-gray-400",bgClass:"bg-gray-400/10",label:"Blocked"},error:{icon:eV.CircleX,iconClass:"text-red-500",bgClass:"bg-red-500/10",label:"Error"},done:{icon:eU.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},eq=["action-needed","error","blocked","in-progress","done"];var eZ=e.i(86782),eK=e.i(29847);function eG({name:e,status:a,startedAt:r,duration:i,agentType:n,modelId:o,onClick:s}){let{icon:l,iconClass:d}=eY[a],c=n?(0,eZ.getAgentTypeIcon)(n):null;return(0,t.jsx)(M,{"data-testid":"feature-list-item",children:(0,t.jsxs)(I,{size:"sm",onClick:s,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(l,{className:d}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===a&&null!=r?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(eF,{startedAt:r})}):null,"done"===a&&i?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:i}):null,c?(0,t.jsx)(y.TooltipProvider,{children:(0,t.jsxs)(y.Tooltip,{children:[(0,t.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(c,{className:"h-3.5 w-3.5"})})}),(0,t.jsxs)(y.TooltipContent,{side:"right",children:[(0,t.jsx)("span",{className:"font-medium",children:eZ.agentTypeLabels[n]??n}),o?(0,t.jsxs)("span",{className:"ml-1 opacity-70",children:["· ",(0,eK.getModelMeta)(o).displayName||o]}):null]})]})}):null]})})}function eJ({label:e,count:a,children:r}){return(0,t.jsxs)(A,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(L,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${a} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-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:a})]}),(0,t.jsx)(D,{children:(0,t.jsx)(z,{className:"gap-0.5",children:r})})]})}function eQ({label:e,className:a}){return(0,t.jsx)(A,{"data-testid":"sidebar-section-header",className:(0,c.cn)("px-2 py-1",a),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 e0={version:"unknown",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform",branch:"",commitHash:"",instancePath:"",isDev:!1};function e2({features:e,featureFlags:i,onFeatureClick:n}){let o=(0,r.usePathname)(),{state:s}=S(),{mounted:l,visible:d}=function(e,t){let[r,i]=(0,a.useState)(!e),[n,o]=(0,a.useState)(!e);return(0,a.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>o(!0));return()=>cancelAnimationFrame(e)}o(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:r,visible:n}}("collapsed"===s,0),c=function(){let[e,t]=(0,a.useState)(e0);return(0,a.useEffect)(()=>{let e=!1;return async function(){try{let a=await fetch("/api/version");if(!a.ok)return;let r=await a.json();e||t(r)}catch{}}(),()=>{e=!0}},[]),e}(),u=eq.map(t=>{let{label:a}=eY[t],r=e.filter(e=>e.status===t);return{key:t,label:a,items:r}});return(0,t.jsxs)(k,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",children:[(0,t.jsx)(R,{children:(0,t.jsxs)(z,{children:[(0,t.jsx)(M,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[l?(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",d?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!d,children:[(0,t.jsx)(eH,{className:"shrink-0",size:20,variant:c.isDev?"dev":"default"}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"}),(0,t.jsx)(eW,{version:c.version,branch:c.branch||void 0,commitHash:c.commitHash||void 0,isDev:c.isDev,packageName:c.packageName,description:c.description,instancePath:c.instancePath||void 0})]}):null,(0,t.jsx)(eI,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(e_,{icon:H,label:"Control Center",href:"/",active:"/"===o}),(0,t.jsx)(e_,{icon:W.Wrench,label:"Tools",href:"/tools",active:"/tools"===o}),i.skills?(0,t.jsx)(e_,{icon:O.Puzzle,label:"Skills",href:"/skills",active:"/skills"===o}):null,(0,t.jsx)(e_,{icon:$.Webhook,label:"Webhooks",href:"/webhooks",active:"/webhooks"===o}),(0,t.jsx)(e_,{icon:F,label:"Settings",href:"/settings",active:"/settings"===o})]})}),(0,t.jsx)(P,{children:l?(0,t.jsxs)("div",{className:["min-w-0 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",d?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(eQ,{label:"Features"}),(0,t.jsx)(eL,{children:u.map(({key:e,label:a,items:r})=>r.length>0?(0,t.jsx)(eJ,{label:a,count:r.length,children:r.map(e=>(0,t.jsx)(eG,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,agentType:e.agentType,modelId:e.modelId,onClick:n?()=>n(e.featureId):void 0},e.featureId))},e):null)})]}):null}),(0,t.jsx)(E,{})]})}var e1=e.i(60253);function e3({actions:e,className:r}){let[n,o]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(n)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){"Escape"===e.key&&o(!1)}},[n]);let s=[...e].reverse();return(0,t.jsxs)(t.Fragment,{children:[n?(0,t.jsx)("div",{"data-testid":"fab-overlay",className:"fixed inset-0 z-40",onClick:()=>o(!1),"aria-hidden":"true"}):null,(0,t.jsxs)("div",{"data-testid":"floating-action-button",className:(0,c.cn)("fixed right-6 bottom-6 z-50",r),children:[(0,t.jsx)("div",{className:"absolute right-0 bottom-16 flex flex-col-reverse items-end gap-3","data-testid":"fab-actions",children:s.map((a,r)=>{let i=e.length-1-r;return(0,t.jsxs)("button",{"data-testid":`fab-action-${a.id}`,"aria-label":a.label,disabled:a.disabled??a.loading,className:(0,c.cn)("flex items-center gap-3 rounded-full px-4 py-2.5","bg-background text-foreground shadow-lg","border-border border","transition-all ease-out","hover:bg-accent hover:text-accent-foreground","disabled:pointer-events-none disabled:opacity-50",n?"translate-y-0 scale-100 opacity-100":"pointer-events-none translate-y-4 scale-95 opacity-0"),style:{transitionDuration:"250ms",transitionDelay:n?`${50*i}ms`:`${50*r}ms`},onClick:()=>{a.onClick(),o(!1)},children:[(0,t.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:a.loading?(0,t.jsx)(eB.Loader2,{className:"h-5 w-5 animate-spin"}):a.icon}),(0,t.jsx)("span",{className:"text-sm font-medium whitespace-nowrap",children:a.label})]},a.id)})}),(0,t.jsxs)(u.Button,{size:"icon","data-testid":"fab-trigger","aria-label":n?"Close actions":"Open actions",className:(0,c.cn)("relative h-12 w-12 rounded-full shadow-lg","transition-colors duration-200"),onClick:()=>o(e=>!e),children:[(0,t.jsx)(i.Plus,{className:(0,c.cn)("absolute h-5 w-5 transition-all",n?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100"),style:{transitionDuration:"250ms"}}),(0,t.jsx)(e1.X,{className:(0,c.cn)("absolute h-5 w-5 transition-all",n?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0"),style:{transitionDuration:"250ms"}})]})]})]})}let e4=(0,s.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"}]]),e5=(0,s.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"}]]),e7="shep-theme";function e6(){let{theme:e,resolvedTheme:r,setTheme:i}=function(){let[e,t]=(0,a.useState)("system"),[r,i]=(0,a.useState)("light"),n=(0,a.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),o=(0,a.useCallback)(e=>"system"===e?n():e,[n]),s=(0,a.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),i(e)},[]),l=(0,a.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(e7,e),s(o(e))},[o,s]);return(0,a.useEffect)(()=>{let e=localStorage.getItem(e7)??"system";t(e),s(o(e))},[o,s]),(0,a.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{"system"===e&&s(o("system"))};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e,o,s]),{theme:e,resolvedTheme:r,setTheme:l}}(),n=(0,eM.useSoundAction)("toggle-on"),o=(0,eM.useSoundAction)("toggle-off");return(0,t.jsxs)(u.Button,{variant:"ghost",size:"icon",onClick:t=>{let a="system"===e?"dark"===r?"light":"dark":"dark"===e?"light":"dark";"dark"!==("system"===e?r:e)?n.play():o.play();let s=window.matchMedia("(prefers-reduced-motion: reduce)").matches;!document.startViewTransition||s?i(a):(document.documentElement.style.setProperty("--x",`${t.clientX}px`),document.documentElement.style.setProperty("--y",`${t.clientY}px`),document.startViewTransition(()=>{i(a)}))},"aria-label":`Switch to ${"dark"===r?"light":"dark"} mode`,children:[(0,t.jsx)(e5,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(e4,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let e8=(0,s.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"}]]),e9=(0,s.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 te=e.i(73709);function tt(){let{enabled:e,toggle:a}=(0,te.useSoundEnabled)();return(0,t.jsxs)(u.Button,{variant:"ghost",size:"icon",onClick:a,"aria-label":e?"Mute sounds":"Unmute sounds",children:[e?(0,t.jsx)(e8,{className:"h-5 w-5"}):(0,t.jsx)(e9,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var ta=e.i(78521),tr=e.i(39443),ti=e.i(30153),tn=e.i(5147),to=e.i(60112),ts=e.i(17406);let tl={[ts.NotificationSeverity.Success]:"success",[ts.NotificationSeverity.Error]:"error",[ts.NotificationSeverity.Warning]:"warning",[ts.NotificationSeverity.Info]:"info"},td={[ts.NotificationSeverity.Success]:"notification-success",[ts.NotificationSeverity.Error]:"notification-error",[ts.NotificationSeverity.Warning]:"notification-warning",[ts.NotificationSeverity.Info]:"notification-info"};var tc=e.i(75921);function tu({children:e}){let o=(0,r.useRouter)(),{guardedNavigate:s}=(0,ti.useDrawerCloseGuard)(),l=(0,tc.useFeatureFlags)();!function(){let e=(0,r.useRouter)(),{events:t}=(0,tr.useAgentEventsContext)(),i=(0,eM.useSoundAction)("notification-success"),n=(0,eM.useSoundAction)("notification-error"),o=(0,eM.useSoundAction)("notification-warning"),s=(0,eM.useSoundAction)("notification-info"),l=(0,a.useMemo)(()=>({"notification-success":i,"notification-error":n,"notification-warning":o,"notification-info":s}),[i,n,o,s]),d=(0,a.useRef)(0);(0,a.useEffect)(()=>{if(t.length<=d.current)return;let a=t.slice(d.current);for(let r of(d.current=t.length,a)){if(r.eventType!==ts.NotificationEventType.MergeReviewReady&&r.severity!==ts.NotificationSeverity.Error&&r.severity!==ts.NotificationSeverity.Warning&&r.severity!==ts.NotificationSeverity.Success)continue;!function(e,t){let a=tl[e.severity]??"info",r=e.eventType===ts.NotificationEventType.WaitingApproval||e.eventType===ts.NotificationEventType.MergeReviewReady;to.toast[a](e.featureName,{description:e.message,...r&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(r,t=>e.push(t));let t=td[r.severity];l[t]?.play()}},[t,l,e])}();let{features:d}=(0,tn.useSidebarFeaturesContext)(),c=(0,a.useCallback)(()=>{s(()=>o.push("/create"))},[o,s]),u=(0,a.useCallback)(e=>{s(()=>o.push(`/feature/${e}`))},[o,s]),[p,f]=(0,a.useState)(!1),h=(0,a.useCallback)(async()=>{if(!p){f(!0);try{let e=await (0,ta.pickFolder)();e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))}finally{f(!1)}}},[p]),m=(0,a.useMemo)(()=>[{id:"new-feature",label:"New Feature",icon:(0,t.jsx)(i.Plus,{className:"h-4 w-4"}),onClick:c},{id:"add-repository",label:"Add Repository",icon:(0,t.jsx)(n.FolderPlus,{className:"h-4 w-4"}),onClick:h,loading:p}],[c,h,p]);return(0,t.jsxs)(N,{defaultOpen:!1,children:[(0,t.jsx)(e2,{features:d,featureFlags:l,onFeatureClick:u}),(0,t.jsx)(T,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1","data-test-id":"canvas-actions-toolbar",children:[(0,t.jsx)(tt,{}),(0,t.jsx)(e6,{})]}),(0,t.jsx)("main",{className:"h-full",children:e}),(0,t.jsx)(e3,{actions:m})]})})]})}function tp({children:e}){return(0,t.jsx)(tr.AgentEventsProvider,{children:(0,t.jsx)(ti.DrawerCloseGuardProvider,{children:(0,t.jsx)(tn.SidebarFeaturesProvider,{children:(0,t.jsx)(tu,{children:e})})})})}e.s(["AppShell",()=>tp],87292)},25251,e=>{"use strict";var t=e.i(20314),a=e.i(60112);let r=({...e})=>(0,t.jsx)(a.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",()=>r])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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])},53360,e=>{"use strict";let t=(0,e.i(3645).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],53360)},97667,e=>{"use strict";var t=e.i(1012);e.s(["CheckIcon",()=>t.default])},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)},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],76016)},41957,11345,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(87620),l=r.forwardRef((e,r)=>(0,t.jsx)(a.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label",e.s(["Label",()=>l,"Root",()=>l],27572);var s=e.i(27572),s=s,c=e.i(94237),i=e.i(31777);let d=(0,c.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),o=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(s.Root,{ref:a,className:(0,i.cn)(d(),e),...r}));o.displayName=s.Root.displayName,e.s(["Label",()=>o],41957);let n=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>n],11345)},61569,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},81846,e=>{"use strict";var t=e.i(20314),r=e.i(94237),a=e.i(31777);let l=(0,r.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function s({className:e,variant:r,...s}){return(0,t.jsx)("div",{className:(0,a.cn)(l({variant:r}),e),...s})}e.s(["Badge",()=>s])},1650,e=>{"use strict";e.i(11495),e.s([])},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},8986,55201,72039,69693,e=>{"use strict";let t=(0,e.i(3645).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",()=>t],8986);var r=e.i(21023);let a=(0,r.createServerReference)("40650151b4afc1da2bdbf86870b4ed975bf7d8bbf4",r.callServer,void 0,r.findSourceMapURL,"openIde");e.s(["openIde",()=>a],55201);let l=(0,r.createServerReference)("40113abba64a99212655cbc634b50cbf7b4f1f082c",r.callServer,void 0,r.findSourceMapURL,"openShell");e.s(["openShell",()=>l],72039);let s=(0,r.createServerReference)("402ece64782505189e2051019536c4894b6bd1b69d",r.callServer,void 0,r.findSourceMapURL,"openFolder");e.s(["openFolder",()=>s],69693)},32494,e=>{"use strict";let t=(0,e.i(3645).default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);e.s(["Globe",()=>t],32494)},33548,e=>{"use strict";let t=(0,e.i(3645).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],33548)},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},26370,e=>{"use strict";let t=(0,e.i(3645).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>t],26370)},54793,7729,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function a({icon:e,title:a,description:l,action:s,className:c,...i}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",c),...i,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:a}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,s?(0,t.jsx)("div",{className:"mt-2",children:s}):null]})}e.s(["EmptyState",()=>a],7729),e.s([],54793)},20858,32664,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00f4ecb2d498db8f141564f1a20d50bbd831973fdb",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],20858);let a=(0,t.createServerReference)("60e4173344b70e9234cae6140ac60bc27710276d7c",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>a],32664)},35745,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("40394d16a36f4d9e4150a1ed169acdee7e0054dcc8",t.callServer,void 0,t.findSourceMapURL,"addRepository");e.s(["addRepository",()=>r])},76852,e=>{"use strict";var t=e.i(79054),r=e.i(55201),a=e.i(72039),l=e.i(69693);function s(e){let[s,c]=(0,t.useState)(!1),[i,d]=(0,t.useState)(!1),[o,n]=(0,t.useState)(!1),[u,f]=(0,t.useState)(null),[p,h]=(0,t.useState)(null),[v,y]=(0,t.useState)(null),b=(0,t.useRef)(null),m=(0,t.useRef)(null),x=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{b.current&&clearTimeout(b.current),m.current&&clearTimeout(m.current),x.current&&clearTimeout(x.current)},[]);let g=(0,t.useCallback)(async(t,r,a,l,s)=>{if(e&&!s){l.current&&clearTimeout(l.current),r(!0),a(null);try{let e=await t();if(!e.success){let t=e.error??"An unexpected error occurred";a(t),l.current=setTimeout(()=>a(null),5e3)}}catch(e){a(e instanceof Error?e.message:"An unexpected error occurred"),l.current=setTimeout(()=>a(null),5e3)}finally{r(!1)}}},[e]);return{openInIde:(0,t.useCallback)(()=>g(()=>(0,r.openIde)({repositoryPath:e.repositoryPath}),c,f,b,s),[g,s,e]),openInShell:(0,t.useCallback)(()=>g(()=>(0,a.openShell)({repositoryPath:e.repositoryPath}),d,h,m,i),[g,i,e]),openFolder:(0,t.useCallback)(()=>g(()=>(0,l.openFolder)(e.repositoryPath),n,y,x,o),[g,o,e]),ideLoading:s,shellLoading:i,folderLoading:o,ideError:u,shellError:p,folderError:v}}e.s(["useRepositoryActions",()=>s])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,38573,e=>{"use strict";let s=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>s],38573)},30702,e=>{"use strict";let s=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>s],30702)},81846,e=>{"use strict";var s=e.i(20314),t=e.i(94237),l=e.i(31777);let a=(0,t.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function r({className:e,variant:t,...r}){return(0,s.jsx)("div",{className:(0,l.cn)(a({variant:t}),e),...r})}e.s(["Badge",()=>r])},1650,e=>{"use strict";e.i(11495),e.s([])},19933,e=>{"use strict";let s=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>s],19933)},54793,7729,e=>{"use strict";var s=e.i(20314),t=e.i(31777);function l({icon:e,title:l,description:a,action:r,className:n,...i}){return(0,s.jsxs)("div",{className:(0,t.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",n),...i,children:[e?(0,s.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,s.jsx)("h3",{className:"text-lg font-semibold",children:l}),a?(0,s.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:a}):null,r?(0,s.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>l],7729),e.s([],54793)},956,e=>{"use strict";var s=e.i(20314),t=e.i(79054),l=e.i(31777);let a=t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...t}));a.displayName="Card";let r=t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",e),...t}));r.displayName="CardHeader";let n=t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("leading-none font-semibold tracking-tight",e),...t}));n.displayName="CardTitle";let i=t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("text-muted-foreground text-sm",e),...t}));i.displayName="CardDescription";let o=t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("p-6 pt-0",e),...t}));o.displayName="CardContent",t.forwardRef(({className:e,...t},a)=>(0,s.jsx)("div",{ref:a,className:(0,l.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter",e.s(["Card",()=>a,"CardContent",()=>o,"CardDescription",()=>i,"CardHeader",()=>r,"CardTitle",()=>n])},9443,85871,e=>{"use strict";var s=e.i(20314),t=e.i(31777);function l({title:e,description:l,children:a,className:r}){return(0,s.jsxs)("header",{className:(0,t.cn)("flex items-center justify-between gap-4",r),children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),l?(0,s.jsx)("p",{className:"text-muted-foreground",children:l}):null]}),a?(0,s.jsx)("div",{"data-slot":"actions",children:a}):null]})}e.s(["PageHeader",()=>l],85871),e.s([],9443)},38752,e=>{"use strict";var s=e.i(20314);e.i(1650);var t=e.i(11495),l=e.i(45811),a=e.i(81846),r=e.i(25235),n=e.i(19933);function i({skill:e,onClose:i}){return(0,s.jsx)(t.BaseDrawer,{open:null!==e,onClose:i,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.DrawerTitle,{children:e.displayName}),(0,s.jsx)(l.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,s.jsxs)("div",{className:"px-4 pb-4",children:[(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,s.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(a.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,s.jsx)(a.Badge,{variant:"outline",children:e.category}),e.context?(0,s.jsx)(a.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,s.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,s.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,s.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,s.jsx)(n.FolderOpen,{className:"size-3.5 shrink-0"}),(0,s.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsx)("pre",{className:"text-muted-foreground text-sm leading-relaxed whitespace-pre-wrap",children:e.body})]}):null]}):null})}e.s(["SkillDetailDrawer",()=>i])},16919,e=>{"use strict";var s=e.i(20314),t=e.i(79054);let l=(0,e.i(3645).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var a=e.i(12103),r=e.i(98127),n=e.i(35364);e.i(9443);var i=e.i(85871);e.i(54793);var o=e.i(7729),d=e.i(956),c=e.i(81846),u=e.i(19933);function x({skill:e,onSelect:t}){return(0,s.jsxs)(d.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>t(e),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),t(e))},"data-testid":`skill-card-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"pb-3",children:[(0,s.jsx)(d.CardTitle,{className:"text-base",children:e.displayName}),(0,s.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(c.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,s.jsx)(c.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,s.jsx)(c.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,s.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,s.jsx)(u.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let m=["Workflow","Code Generation","Analysis","Reference"];function f({skills:e,onSkillSelect:t}){let l=function(e){let s=new Map;for(let t of e){let e=s.get(t.category)??[];e.push(t),s.set(t.category,e)}return s}(e);return(0,s.jsx)("div",{className:"space-y-8",children:m.map(e=>{let a=l.get(e);return a&&0!==a.length?(0,s.jsxs)("section",{children:[(0,s.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,s.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",a.length,")"]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:a.map(e=>(0,s.jsx)(x,{skill:e,onSelect:t},e.name))})]},e):null})})}let p=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function h({activeCategory:e,onCategoryChange:t,counts:l}){return(0,s.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:p.map(({label:a,value:r})=>(0,s.jsxs)(n.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>t(r),children:[a,l&&r?(0,s.jsxs)("span",{className:"ml-1 text-xs opacity-70",children:["(",l[r],")"]}):null]},a))})}var g=e.i(38752);function j({skills:e}){let[d,c]=(0,t.useState)(""),[u,x]=(0,t.useState)(null),[m,p]=(0,t.useState)(null),j=(0,t.useMemo)(()=>(function(e){let s={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let t of e)s[t.category]++;return s})(e),[e]),v=(0,t.useMemo)(()=>{let s=d.toLowerCase();return e.filter(e=>{if(u&&e.category!==u)return!1;if(s){let t=e.name.toLowerCase().includes(s),l=e.description.toLowerCase().includes(s);if(!t&&!l)return!1}return!0})},[e,d,u]);return 0===e.length?(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(i.PageHeader,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(a.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(i.PageHeader,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(l,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,s.jsx)(r.Input,{placeholder:"Search skills...",value:d,onChange:e=>c(e.target.value),className:"pl-9"})]}),(0,s.jsx)(h,{activeCategory:u,onCategoryChange:x,counts:j}),v.length>0?(0,s.jsx)(f,{skills:v,onSkillSelect:p}):(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(l,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,s.jsx)(n.Button,{variant:"outline",onClick:()=>{c(""),x(null)},children:"Clear filters"})}),(0,s.jsx)(g.SkillDetailDrawer,{skill:m,onClose:()=>p(null)})]})}e.s(["SkillsPageClient",()=>j],16919)}]);