@shepai/cli 1.182.1 → 1.183.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/apis/json-schema/Application.yaml +7 -0
  2. package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +1 -1
  3. package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +3 -3
  5. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +13 -21
  7. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +19 -3
  8. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -1
  9. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +37 -4
  10. package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.d.ts +30 -0
  11. package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.d.ts.map +1 -0
  12. package/dist/packages/core/src/application/use-cases/applications/resume-application-workflow.use-case.js +122 -0
  13. package/dist/packages/core/src/domain/generated/output.d.ts +8 -0
  14. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +2 -0
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +4 -0
  20. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.d.ts +5 -0
  21. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.d.ts.map +1 -0
  22. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/058-add-setup-complete-to-applications.js +10 -0
  23. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.d.ts +5 -0
  24. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.d.ts.map +1 -0
  25. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/059-add-agent-session-id-to-applications.js +10 -0
  26. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +1 -1
  27. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +10 -2
  29. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +4 -1
  31. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +4 -1
  33. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts.map +1 -1
  34. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +4 -1
  35. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +11 -6
  37. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts +2 -2
  38. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts.map +1 -1
  39. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.js +2 -2
  40. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  41. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +3 -2
  42. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +16 -5
  43. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts.map +1 -1
  44. package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +38 -7
  45. package/dist/src/presentation/web/app/api/applications/[id]/resume/route.d.ts +20 -0
  46. package/dist/src/presentation/web/app/api/applications/[id]/resume/route.d.ts.map +1 -0
  47. package/dist/src/presentation/web/app/api/applications/[id]/resume/route.js +25 -0
  48. package/dist/src/presentation/web/app/api/applications/[id]/route.d.ts +19 -0
  49. package/dist/src/presentation/web/app/api/applications/[id]/route.d.ts.map +1 -0
  50. package/dist/src/presentation/web/app/api/applications/[id]/route.js +46 -0
  51. package/dist/src/presentation/web/app/api/applications/route.d.ts +9 -0
  52. package/dist/src/presentation/web/app/api/applications/route.d.ts.map +1 -0
  53. package/dist/src/presentation/web/app/api/applications/route.js +20 -0
  54. package/dist/src/presentation/web/app/application/[id]/page.d.ts +4 -4
  55. package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -1
  56. package/dist/src/presentation/web/app/application/[id]/page.js +2 -61
  57. package/dist/src/presentation/web/app/applications/page.d.ts +2 -0
  58. package/dist/src/presentation/web/app/applications/page.d.ts.map +1 -0
  59. package/dist/src/presentation/web/app/applications/page.js +5 -0
  60. package/dist/src/presentation/web/components/assistant-ui/thread.js +2 -2
  61. package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -1
  62. package/dist/src/presentation/web/components/common/application-node/application-node.js +3 -37
  63. package/dist/src/presentation/web/components/features/application-page/application-page-loader.d.ts +4 -0
  64. package/dist/src/presentation/web/components/features/application-page/application-page-loader.d.ts.map +1 -0
  65. package/dist/src/presentation/web/components/features/application-page/application-page-loader.js +47 -0
  66. package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -1
  67. package/dist/src/presentation/web/components/features/application-page/application-page.js +75 -54
  68. package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -1
  69. package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +1 -0
  70. package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts +3 -1
  71. package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts.map +1 -1
  72. package/dist/src/presentation/web/components/features/application-page/run-dev-button.js +6 -2
  73. package/dist/src/presentation/web/components/features/applications/application-card.d.ts +7 -0
  74. package/dist/src/presentation/web/components/features/applications/application-card.d.ts.map +1 -0
  75. package/dist/src/presentation/web/components/features/applications/application-card.js +82 -0
  76. package/dist/src/presentation/web/components/features/applications/application-card.stories.d.ts +13 -0
  77. package/dist/src/presentation/web/components/features/applications/application-card.stories.d.ts.map +1 -0
  78. package/dist/src/presentation/web/components/features/applications/application-card.stories.js +69 -0
  79. package/dist/src/presentation/web/components/features/applications/applications-page-client.d.ts +5 -0
  80. package/dist/src/presentation/web/components/features/applications/applications-page-client.d.ts.map +1 -0
  81. package/dist/src/presentation/web/components/features/applications/applications-page-client.js +28 -0
  82. package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.d.ts +10 -0
  83. package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.d.ts.map +1 -0
  84. package/dist/src/presentation/web/components/features/applications/applications-page-client.stories.js +93 -0
  85. package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts +3 -1
  86. package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts.map +1 -1
  87. package/dist/src/presentation/web/components/features/chat/ChatComposer.js +2 -2
  88. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +3 -1
  89. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
  90. package/dist/src/presentation/web/components/features/chat/ChatTab.js +4 -3
  91. package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts +6 -1
  92. package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts.map +1 -1
  93. package/dist/src/presentation/web/components/features/chat/StepTracker.js +23 -20
  94. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -2
  96. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +3 -1
  97. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -2
  99. package/dist/src/presentation/web/components/features/settings/language-settings-section.d.ts.map +1 -1
  100. package/dist/src/presentation/web/components/features/settings/language-settings-section.js +1 -0
  101. package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts +1 -0
  102. package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.d.ts.map +1 -1
  103. package/dist/src/presentation/web/components/features/settings/language-settings-section.stories.js +5 -0
  104. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  105. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +23 -3
  106. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  107. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  108. package/dist/src/presentation/web/lib/derive-app-status.d.ts +23 -0
  109. package/dist/src/presentation/web/lib/derive-app-status.d.ts.map +1 -0
  110. package/dist/src/presentation/web/lib/derive-app-status.js +89 -0
  111. package/dist/src/presentation/web/lib/i18n.d.ts.map +1 -1
  112. package/dist/src/presentation/web/lib/i18n.js +3 -0
  113. package/dist/translations/ar/web.json +2 -1
  114. package/dist/translations/de/web.json +2 -1
  115. package/dist/translations/en/web.json +2 -1
  116. package/dist/translations/es/web.json +2 -1
  117. package/dist/translations/fr/web.json +2 -1
  118. package/dist/translations/he/web.json +2 -1
  119. package/dist/translations/pt/web.json +2 -1
  120. package/dist/translations/ru/web.json +2 -1
  121. package/dist/translations/uk/web.json +2 -1
  122. package/dist/tsconfig.build.tsbuildinfo +1 -1
  123. package/package.json +1 -1
  124. package/web/.next/BUILD_ID +1 -1
  125. package/web/.next/app-path-routes-manifest.json +4 -0
  126. package/web/.next/build-manifest.json +2 -2
  127. package/web/.next/fallback-build-manifest.json +2 -2
  128. package/web/.next/prerender-manifest.json +3 -3
  129. package/web/.next/required-server-files.js +2 -2
  130. package/web/.next/required-server-files.json +2 -2
  131. package/web/.next/routes-manifest.json +28 -0
  132. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
  133. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +5 -5
  134. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  135. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +30 -30
  137. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +5 -5
  138. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  139. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
  141. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +5 -5
  142. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  143. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
  145. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +5 -5
  146. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  147. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +41 -41
  149. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +5 -5
  150. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  151. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
  153. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +5 -5
  154. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  155. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
  157. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +5 -5
  158. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  159. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  160. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +30 -30
  161. package/web/.next/server/app/(dashboard)/chat/page.js +5 -5
  162. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  163. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  164. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
  165. package/web/.next/server/app/(dashboard)/create/page.js +5 -5
  166. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  167. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  168. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +41 -41
  169. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +5 -5
  170. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  171. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  172. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +41 -41
  173. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +5 -5
  174. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  175. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +30 -30
  177. package/web/.next/server/app/(dashboard)/page.js +5 -5
  178. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  179. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  180. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +31 -31
  181. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +5 -5
  182. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  183. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  184. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
  185. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +5 -5
  186. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/_global-error/page.js +1 -1
  189. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  190. package/web/.next/server/app/_global-error.html +2 -2
  191. package/web/.next/server/app/_global-error.rsc +1 -1
  192. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  193. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  194. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  195. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  196. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  197. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  198. package/web/.next/server/app/_not-found/page.js +1 -1
  199. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  200. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  201. package/web/.next/server/app/api/applications/[id]/resume/route/app-paths-manifest.json +3 -0
  202. package/web/.next/server/app/api/applications/[id]/resume/route/build-manifest.json +11 -0
  203. package/web/.next/server/app/api/applications/[id]/resume/route/server-reference-manifest.json +4 -0
  204. package/web/.next/server/app/api/applications/[id]/resume/route.js +7 -0
  205. package/web/.next/server/app/api/applications/[id]/resume/route.js.map +5 -0
  206. package/web/.next/server/app/api/applications/[id]/resume/route.js.nft.json +1 -0
  207. package/web/.next/server/app/api/applications/[id]/resume/route_client-reference-manifest.js +2 -0
  208. package/web/.next/server/app/api/applications/[id]/route/app-paths-manifest.json +3 -0
  209. package/web/.next/server/app/api/applications/[id]/route/build-manifest.json +11 -0
  210. package/web/.next/server/app/api/applications/[id]/route/server-reference-manifest.json +4 -0
  211. package/web/.next/server/app/api/applications/[id]/route.js +7 -0
  212. package/web/.next/server/app/api/applications/[id]/route.js.map +5 -0
  213. package/web/.next/server/app/api/applications/[id]/route.js.nft.json +1 -0
  214. package/web/.next/server/app/api/applications/[id]/route_client-reference-manifest.js +2 -0
  215. package/web/.next/server/app/api/applications/route/app-paths-manifest.json +3 -0
  216. package/web/.next/server/app/api/applications/route/build-manifest.json +11 -0
  217. package/web/.next/server/app/api/applications/route/server-reference-manifest.json +4 -0
  218. package/web/.next/server/app/api/applications/route.js +7 -0
  219. package/web/.next/server/app/api/applications/route.js.map +5 -0
  220. package/web/.next/server/app/api/applications/route.js.nft.json +1 -0
  221. package/web/.next/server/app/api/applications/route_client-reference-manifest.js +2 -0
  222. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  223. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  224. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  225. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  226. package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +45 -30
  227. package/web/.next/server/app/application/[id]/page.js +3 -3
  228. package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
  229. package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/applications/page/app-paths-manifest.json +3 -0
  231. package/web/.next/server/app/applications/page/build-manifest.json +18 -0
  232. package/web/.next/server/app/applications/page/next-font-manifest.json +6 -0
  233. package/web/.next/server/app/applications/page/react-loadable-manifest.json +1 -0
  234. package/web/.next/server/app/applications/page/server-reference-manifest.json +230 -0
  235. package/web/.next/server/app/applications/page.js +19 -0
  236. package/web/.next/server/app/applications/page.js.map +5 -0
  237. package/web/.next/server/app/applications/page.js.nft.json +1 -0
  238. package/web/.next/server/app/applications/page_client-reference-manifest.js +2 -0
  239. package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
  240. package/web/.next/server/app/features/page.js +1 -1
  241. package/web/.next/server/app/features/page.js.nft.json +1 -1
  242. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/settings/page/server-reference-manifest.json +10 -10
  244. package/web/.next/server/app/settings/page.js +1 -1
  245. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  246. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/skills/page/server-reference-manifest.json +15 -15
  248. package/web/.next/server/app/skills/page.js +1 -1
  249. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  250. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  251. package/web/.next/server/app/tools/page/server-reference-manifest.json +13 -13
  252. package/web/.next/server/app/tools/page.js +1 -1
  253. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  254. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  255. package/web/.next/server/app/version/page/server-reference-manifest.json +7 -7
  256. package/web/.next/server/app/version/page.js +1 -1
  257. package/web/.next/server/app/version/page.js.nft.json +1 -1
  258. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  259. package/web/.next/server/app-paths-manifest.json +4 -0
  260. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_[id]_route_actions_e31b426d.js +3 -0
  261. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_[id]_route_actions_e31b426d.js.map +1 -0
  262. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_route_actions_2b7d20d0.js +3 -0
  263. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_applications_route_actions_2b7d20d0.js.map +1 -0
  264. package/web/.next/server/chunks/[root-of-the-server]__3bb635e8._.js +3 -0
  265. package/web/.next/server/chunks/[root-of-the-server]__3bb635e8._.js.map +1 -0
  266. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  267. package/web/.next/server/chunks/[root-of-the-server]__ac0027b4._.js +3 -0
  268. package/web/.next/server/chunks/[root-of-the-server]__ac0027b4._.js.map +1 -0
  269. package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js.map +1 -1
  270. package/web/.next/server/chunks/[root-of-the-server]__c8f90b29._.js +1 -1
  271. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  272. package/web/.next/server/chunks/[root-of-the-server]__ce82df38._.js +3 -0
  273. package/web/.next/server/chunks/[root-of-the-server]__ce82df38._.js.map +1 -0
  274. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_resume_route_actions_3a66d646.js +3 -0
  275. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_resume_route_actions_3a66d646.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js +3 -0
  277. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4f9eef62.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js +3 -0
  279. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_ffa16a22.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js +3 -0
  281. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_a1a998f9.js.map +1 -0
  282. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  283. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  284. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  285. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  286. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js +3 -0
  287. package/web/.next/server/chunks/ssr/744ca_web_components_features_applications_applications-page-client_tsx_d0db9938._.js.map +1 -0
  288. package/web/.next/server/chunks/ssr/[root-of-the-server]__04f4895b._.js +3 -0
  289. package/web/.next/server/chunks/ssr/[root-of-the-server]__04f4895b._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +1 -1
  291. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +1 -1
  293. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +1 -1
  294. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -1
  295. package/web/.next/server/chunks/ssr/[root-of-the-server]__347fd0f6._.js +3 -0
  296. package/web/.next/server/chunks/ssr/[root-of-the-server]__347fd0f6._.js.map +1 -0
  297. package/web/.next/server/chunks/ssr/[root-of-the-server]__46dd2baf._.js +3 -0
  298. package/web/.next/server/chunks/ssr/[root-of-the-server]__46dd2baf._.js.map +1 -0
  299. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +1 -1
  300. package/web/.next/server/chunks/ssr/[root-of-the-server]__73cb4ff6._.js +3 -0
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__73cb4ff6._.js.map +1 -0
  302. package/web/.next/server/chunks/ssr/{[root-of-the-server]__87bc4dac._.js → [root-of-the-server]__86ff0bc5._.js} +3 -3
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -0
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__91c50abe._.js +3 -0
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__91c50abe._.js.map +1 -0
  306. package/web/.next/server/chunks/ssr/[root-of-the-server]__a48af49f._.js +3 -0
  307. package/web/.next/server/chunks/ssr/[root-of-the-server]__a48af49f._.js.map +1 -0
  308. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +1 -1
  309. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/[root-of-the-server]__d5e22d1a._.js +3 -0
  311. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7aa484f5._.js.map → [root-of-the-server]__d5e22d1a._.js.map} +1 -1
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +1 -1
  313. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0aa2bcb._.js +3 -0
  315. package/web/.next/server/chunks/ssr/[root-of-the-server]__e0aa2bcb._.js.map +1 -0
  316. package/web/.next/server/chunks/ssr/[root-of-the-server]__e265da61._.js +1 -1
  317. package/web/.next/server/chunks/ssr/[root-of-the-server]__ef0b8905._.js +12 -0
  318. package/web/.next/server/chunks/ssr/[root-of-the-server]__ef0b8905._.js.map +1 -0
  319. package/web/.next/server/chunks/ssr/[root-of-the-server]__f5614810._.js +3 -0
  320. package/web/.next/server/chunks/ssr/{[root-of-the-server]__090f24cb._.js.map → [root-of-the-server]__f5614810._.js.map} +1 -1
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe5db6b2._.js +3 -0
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__fe5db6b2._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/_037e85c7._.js +3 -0
  324. package/web/.next/server/chunks/ssr/_037e85c7._.js.map +1 -0
  325. package/web/.next/server/chunks/ssr/{_774cbf7d._.js → _133ae3de._.js} +2 -2
  326. package/web/.next/server/chunks/ssr/{_774cbf7d._.js.map → _133ae3de._.js.map} +1 -1
  327. package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
  328. package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -1
  329. package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/_29b8ed64._.js +3 -0
  331. package/web/.next/server/chunks/ssr/_29b8ed64._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/_2bc302d1._.js +3 -0
  333. package/web/.next/server/chunks/ssr/_2bc302d1._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/_35294e79._.js +3 -0
  335. package/web/.next/server/chunks/ssr/_35294e79._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/_3683083e._.js +3 -0
  337. package/web/.next/server/chunks/ssr/_3683083e._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  339. package/web/.next/server/chunks/ssr/_4b57bcc3._.js +9 -0
  340. package/web/.next/server/chunks/ssr/_4b57bcc3._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/_519d77a9._.js +3 -0
  342. package/web/.next/server/chunks/ssr/_519d77a9._.js.map +1 -0
  343. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  344. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  345. package/web/.next/server/chunks/ssr/_82db03fd._.js +3 -0
  346. package/web/.next/server/chunks/ssr/_82db03fd._.js.map +1 -0
  347. package/web/.next/server/chunks/ssr/_8c3086bf._.js +3 -0
  348. package/web/.next/server/chunks/ssr/_8c3086bf._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/_9173e475._.js +21 -0
  350. package/web/.next/server/chunks/ssr/_9173e475._.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/_946a7fc6._.js +1 -1
  352. package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -1
  353. package/web/.next/server/chunks/ssr/{_81e7a131._.js → _a08047ef._.js} +2 -2
  354. package/web/.next/server/chunks/ssr/_a08047ef._.js.map +1 -0
  355. package/web/.next/server/chunks/ssr/_bc03ac82._.js +4 -0
  356. package/web/.next/server/chunks/ssr/_bc03ac82._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/_d4c0792b._.js +3 -0
  358. package/web/.next/server/chunks/ssr/_d4c0792b._.js.map +1 -0
  359. package/web/.next/server/chunks/ssr/_e61d032d._.js +3 -0
  360. package/web/.next/server/chunks/ssr/_e61d032d._.js.map +1 -0
  361. package/web/.next/server/chunks/ssr/_e65abbd1._.js +3 -0
  362. package/web/.next/server/chunks/ssr/_e65abbd1._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
  364. package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
  365. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  366. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  367. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  368. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  369. package/web/.next/server/chunks/ssr/node_modules__pnpm_28a53b5d._.js +3 -0
  370. package/web/.next/server/chunks/ssr/node_modules__pnpm_28a53b5d._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js +3 -0
  372. package/web/.next/server/chunks/ssr/src_presentation_web_47181610._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js +3 -0
  374. package/web/.next/server/chunks/ssr/src_presentation_web_5d3f4199._.js.map +1 -0
  375. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
  376. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js +3 -0
  378. package/web/.next/server/chunks/ssr/src_presentation_web_61d96ba8._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js +3 -0
  380. package/web/.next/server/chunks/ssr/src_presentation_web_6994959a._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js +32 -0
  382. package/web/.next/server/chunks/ssr/src_presentation_web_77dadf68._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +3 -0
  384. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js +3 -0
  386. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_c3f6f57e.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
  388. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js +32 -0
  390. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_8514dfcd._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js +3 -0
  392. package/web/.next/server/chunks/ssr/src_presentation_web_b95ed206._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +3 -0
  394. package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js +3 -0
  396. package/web/.next/server/chunks/ssr/src_presentation_web_c543cf3e._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  398. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
  400. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  402. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js +3 -0
  404. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_dropdown-menu_tsx_229332e3._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/translations_1562ae1a._.js +3 -0
  406. package/web/.next/server/chunks/ssr/translations_1562ae1a._.js.map +1 -0
  407. package/web/.next/server/pages/500.html +2 -2
  408. package/web/.next/server/server-reference-manifest.js +1 -1
  409. package/web/.next/server/server-reference-manifest.json +184 -72
  410. package/web/.next/static/chunks/019e71634c720ede.js +1 -0
  411. package/web/.next/static/chunks/040c5ff84a8ae1a3.js +7 -0
  412. package/web/.next/static/chunks/092ac28f5a4422a0.js +19 -0
  413. package/web/.next/static/chunks/0bd78b0cf1c1421f.js +1 -0
  414. package/web/.next/static/chunks/{996e4ea45364bf3c.js → 18c21c4f9f58b69a.js} +3 -3
  415. package/web/.next/static/chunks/2b5aea3575387b3a.js +1 -0
  416. package/web/.next/static/chunks/2cbe80f8e84d59a8.js +1 -0
  417. package/web/.next/static/chunks/{503d2e86f83285f9.js → 3219b06f6a34e573.js} +1 -1
  418. package/web/.next/static/chunks/37e434e579ecfa02.js +1 -0
  419. package/web/.next/static/chunks/4a7cf3b09e0495a4.js +1 -0
  420. package/web/.next/static/chunks/{83fc7ea32e18c9a5.js → 4ea617a22e21fb04.js} +1 -1
  421. package/web/.next/static/chunks/54d1d5a646a12d76.js +1 -0
  422. package/web/.next/static/chunks/{9e9b60f127270dfd.js → 553be530f22710a7.js} +1 -1
  423. package/web/.next/static/chunks/5795b9f399523c9e.js +1 -0
  424. package/web/.next/static/chunks/{d488e6b5cbbc6833.js → 6a88df64eaeb6322.js} +1 -1
  425. package/web/.next/static/chunks/{2fe20598e1b4793a.js → 6b2859ea368e7df3.js} +3 -3
  426. package/web/.next/static/chunks/6d8cae68371a845d.js +1 -0
  427. package/web/.next/static/chunks/{a2601dbbcb657c7d.js → 78607d521d916531.js} +1 -1
  428. package/web/.next/static/chunks/{7bf6ed16395220c4.js → 7d5a7551d452463d.js} +2 -2
  429. package/web/.next/static/chunks/80e778136b2f4c92.js +1 -0
  430. package/web/.next/static/chunks/a62fb058d660bea3.js +3 -0
  431. package/web/.next/static/chunks/adf16efe8bac05e9.css +1 -0
  432. package/web/.next/static/chunks/b0474319e5a50043.js +1 -0
  433. package/web/.next/static/chunks/b85532fb1545927c.js +5 -0
  434. package/web/.next/static/chunks/e0ae4dbd97b7af4c.js +1 -0
  435. package/web/.next/static/chunks/{2af89379fde6831d.js → f70998ac93012aef.js} +1 -1
  436. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +0 -3
  437. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +0 -1
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__090f24cb._.js +0 -3
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +0 -12
  440. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +0 -1
  441. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +0 -3
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__7aa484f5._.js +0 -3
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__87bc4dac._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js +0 -3
  446. package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js.map +0 -1
  447. package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js +0 -3
  448. package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js.map +0 -1
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +0 -3
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +0 -3
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +0 -3
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/_0277d3b5._.js +0 -21
  456. package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_44531b76._.js +0 -9
  458. package/web/.next/server/chunks/ssr/_44531b76._.js.map +0 -1
  459. package/web/.next/server/chunks/ssr/_5dec4047._.js +0 -3
  460. package/web/.next/server/chunks/ssr/_5dec4047._.js.map +0 -1
  461. package/web/.next/server/chunks/ssr/_73aa3b20._.js +0 -3
  462. package/web/.next/server/chunks/ssr/_73aa3b20._.js.map +0 -1
  463. package/web/.next/server/chunks/ssr/_81e7a131._.js.map +0 -1
  464. package/web/.next/server/chunks/ssr/_869a3a15._.js +0 -3
  465. package/web/.next/server/chunks/ssr/_869a3a15._.js.map +0 -1
  466. package/web/.next/server/chunks/ssr/_b227ff50._.js +0 -3
  467. package/web/.next/server/chunks/ssr/_b227ff50._.js.map +0 -1
  468. package/web/.next/server/chunks/ssr/_d75dcb43._.js +0 -3
  469. package/web/.next/server/chunks/ssr/_d75dcb43._.js.map +0 -1
  470. package/web/.next/server/chunks/ssr/_e071ba48._.js +0 -3
  471. package/web/.next/server/chunks/ssr/_e071ba48._.js.map +0 -1
  472. package/web/.next/server/chunks/ssr/_eff1b518._.js +0 -3
  473. package/web/.next/server/chunks/ssr/_eff1b518._.js.map +0 -1
  474. package/web/.next/server/chunks/ssr/_f227429a._.js +0 -3
  475. package/web/.next/server/chunks/ssr/_f227429a._.js.map +0 -1
  476. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +0 -3
  477. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +0 -1
  478. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +0 -3
  479. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +0 -1
  480. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +0 -3
  481. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +0 -1
  482. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +0 -3
  483. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +0 -1
  484. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +0 -3
  485. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +0 -1
  486. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +0 -3
  487. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +0 -1
  488. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +0 -3
  489. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +0 -1
  490. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -32
  491. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
  492. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +0 -3
  493. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +0 -1
  494. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +0 -3
  495. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +0 -1
  496. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +0 -3
  497. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +0 -1
  498. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +0 -3
  499. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +0 -1
  500. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +0 -3
  501. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +0 -1
  502. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +0 -3
  503. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +0 -1
  504. package/web/.next/static/chunks/06b9d6dbf635c370.css +0 -1
  505. package/web/.next/static/chunks/1ae0cf5be30ef398.js +0 -1
  506. package/web/.next/static/chunks/3a71cab38909921e.js +0 -1
  507. package/web/.next/static/chunks/4e53adb5d07b7e3d.js +0 -1
  508. package/web/.next/static/chunks/5e7ac3508bef115f.js +0 -1
  509. package/web/.next/static/chunks/761a7c542b358739.js +0 -1
  510. package/web/.next/static/chunks/927442d2628f6e22.js +0 -1
  511. package/web/.next/static/chunks/a31f2264cedb23e9.js +0 -1
  512. package/web/.next/static/chunks/abf7d1b66555b758.js +0 -7
  513. package/web/.next/static/chunks/b99506a6f7bc2fa8.js +0 -1
  514. package/web/.next/static/chunks/d984d1d8d506291c.js +0 -7
  515. package/web/.next/static/chunks/e843a0d8e8c645c4.js +0 -1
  516. package/web/.next/static/chunks/f5ed0232d50b1ec8.js +0 -19
  517. /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_buildManifest.js +0 -0
  518. /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_clientMiddlewareManifest.json +0 -0
  519. /package/web/.next/static/{6GBQ7MHEYpZbJzqULwvXh → t-O8eMjJCUhhtd6CgtTXI}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(31406);e.i(41001);var i=e.i(64780),r=e.i(84840),n=e.i(57638),o=e.i(3645);let l=(0,o.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var u=e.i(42049);let c=(0,o.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),d=(0,o.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),h=(0,o.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),m=(0,o.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var p=e.i(53360);let f=(0,o.default)("zap-off",[["path",{d:"M10.513 4.856 13.12 2.17a.5.5 0 0 1 .86.46l-1.377 4.317",key:"193nxd"}],["path",{d:"M15.656 10H20a1 1 0 0 1 .78 1.63l-1.72 1.773",key:"27a7lr"}],["path",{d:"M16.273 16.273 10.88 21.83a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14H4a1 1 0 0 1-.78-1.63l4.507-4.643",key:"1e0qe9"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var g=e.i(81975),x=e.i(12103),b=e.i(39200);let y=(0,o.default)("table-properties",[["path",{d:"M15 3v18",key:"14nvp0"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]);var v=e.i(35340),w=e.i(24035),j=e.i(8361);function k({icon:e,label:a,href:s,active:i=!1}){let r=(0,j.useSoundAction)("navigate");return(0,t.jsx)(n.SidebarMenuItem,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(n.SidebarMenuButton,{asChild:!0,isActive:i,tooltip:a,children:(0,t.jsxs)(w.default,{href:s,onClick:()=>r.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:a})]})})})}var N=e.i(71379),N=N,S=e.i(35364),C=e.i(31777);function M({className:e}){let{toggleSidebar:a,open:s}=(0,n.useSidebar)(),i=(0,j.useSoundAction)("expand"),r=(0,j.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,C.cn)("flex",e),children:(0,t.jsx)(S.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{s?r.play():i.play(),a()},"aria-label":s?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(N.default,{className:"size-4"})})})}e.i(92233);var T=e.i(10025),E=e.i(2828);function A({version:e,branch:s,commitHash:r,isDev:n=!1,packageName:o="@shepai/cli",description:l,instancePath:u}){let{t:c}=(0,i.useTranslation)("web"),d=r?.slice(0,7),{latest:h,updateAvailable:m}=function(e){let[t,s]=(0,a.useState)(null),[i,r]=(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&&s(a.latest)}catch{}finally{e||r(!1)}}(),()=>{e=!0}},[]);let n=null!==t&&function(e,t){let a=e=>e.split("-")[0].split(".").map(Number),s=a(e),i=a(t);for(let e=0;e<3;e++){let t=s[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:n,loading:i}}(e),{status:p,startUpgrade:f}=function(){let[e,t]=(0,a.useState)("idle"),[s,i]=(0,a.useState)(""),[r,n]=(0,a.useState)(),o=(0,a.useRef)(null),l=(0,a.useRef)(!1),u=(0,a.useCallback)(()=>{if("upgrading"===e||"restarting"===e)return;t("upgrading"),i(""),n(void 0),l.current=!1;let a=new AbortController;return o.current=a,fetch("/api/cli-upgrade",{method:"POST",signal:a.signal}).then(async e=>{if(!e.ok||!e.body){t("error"),n(`Server returned ${e.status}`);return}let a=e.body.getReader(),s=new TextDecoder,r="";for(;;){let{done:e,value:o}=await a.read();if(e)break;let u=(r+=s.decode(o,{stream:!0})).split("\n");for(let e of(r=u.pop()??"",u)){if(e.startsWith("event: restarting")){l.current=!0,t("restarting"),function(e,t){let a=Date.now()+3e4,s=()=>{Date.now()>a||fetch("/api/version",{method:"GET",cache:"no-store"}).then(e=>{e.ok?window.location.reload():setTimeout(s,500)}).catch(()=>{setTimeout(s,500)})};setTimeout(s,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"),n(e.errorMessage))}catch{i(e=>e+a)}}}}}).catch(e=>{l.current||e instanceof DOMException&&"AbortError"===e.name||(t("error"),n(e instanceof Error?e.message:"Upgrade failed"))}),()=>{a.abort()}},[e]);return{status:e,output:s,errorMessage:r,startUpgrade:u}}(),g=n?`${e}-dev`:`v${e}`,x="upgrading"===p,b="restarting"===p,y="upgraded"===p;return(0,t.jsx)(E.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-muted-foreground/80 hover:text-muted-foreground relative cursor-default text-[11px] leading-tight transition-colors","data-testid":"version-label",children:[g,!m||y||b?null:(0,t.jsx)("span",{className:"absolute -top-0.5 -right-1.5 size-1.5 rounded-full bg-emerald-400","data-testid":"update-dot"})]})}),(0,t.jsxs)(E.TooltipContent,{side:"right",className:"max-w-[280px] space-y-1 p-3 text-start",children:[(0,t.jsx)("div",{className:"mb-1.5 text-xs font-semibold",children:o}),l?(0,t.jsx)("div",{className:"text-[10px] leading-snug opacity-70",children:l}):null,(0,t.jsxs)("div",{className:"border-t border-white/10 pt-1.5",children:[(0,t.jsx)(P,{label:c("versionBadge.version"),value:g}),n&&s?(0,t.jsx)(P,{label:c("versionBadge.branch"),value:s}):null,n&&d?(0,t.jsx)(P,{label:c("versionBadge.commit"),value:d,mono:!0}):null,n&&u?(0,t.jsx)(P,{label:c("versionBadge.path"),value:u,mono:!0}):null,h?(0,t.jsx)(P,{label:"Latest",value:`v${h}`,highlight:m}):null]}),b?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-restarting",children:"Restarting..."})}):y?(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"})}):m?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("button",{type:"button",onClick:f,disabled:x||b,className:"inline-flex items-center gap-1 text-[10px] font-medium text-emerald-400 transition-colors hover:text-emerald-300 disabled:opacity-50","data-testid":"upgrade-button",children:x?"Upgrading...":b?"Restarting...":`Upgrade to v${h}`})}):null]})]})})}function P({label:e,value:a,highlight:s,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:[s?"font-medium text-emerald-400":"",i||!s?"font-mono":""].filter(Boolean).join(" "),children:a})]})}function D({startedAt:e}){let[s,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")}`}(s)})}var O=e.i(51251),q=e.i(83428),L=e.i(34119),I=e.i(94819),Q=e.i(54277),R=e.i(55016);let z={"action-needed":{icon:O.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",labelKey:"sidebar.statusActionNeeded"},"in-progress":{icon:q.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",labelKey:"sidebar.statusInProgress"},pending:{icon:R.Clock,iconClass:"text-slate-400",bgClass:"bg-slate-400/10",labelKey:"sidebar.statusPending"},blocked:{icon:I.Ban,iconClass:"text-gray-400",bgClass:"bg-gray-400/10",labelKey:"sidebar.statusBlocked"},error:{icon:Q.CircleX,iconClass:"text-red-500",bgClass:"bg-red-500/10",labelKey:"sidebar.statusError"},done:{icon:L.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",labelKey:"sidebar.statusDone"}},F=["action-needed","error","blocked","in-progress","pending","done"];var K=e.i(86782),H=e.i(29847);function B({name:e,status:a,startedAt:s,duration:i,agentType:r,modelId:o,onClick:l}){let{icon:u,iconClass:c}=z[a],d=r?(0,K.getAgentTypeIcon)(r):null;return(0,t.jsx)(n.SidebarMenuItem,{"data-testid":"feature-list-item",children:(0,t.jsxs)(n.SidebarMenuButton,{size:"sm",onClick:l,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(u,{className:c}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===a&&null!=s?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(D,{startedAt:s})}):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,d?(0,t.jsx)(E.TooltipProvider,{children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(d,{className:"h-3.5 w-3.5"})})}),(0,t.jsxs)(E.TooltipContent,{side:"right",children:[(0,t.jsx)("span",{className:"font-medium",children:K.agentTypeLabels[r]??r}),o?(0,t.jsxs)("span",{className:"ms-1 opacity-70",children:["· ",(0,H.getModelMeta)(o).displayName||o]}):null]})]})}):null]})})}var _=e.i(73709);let G="shep-animations-enabled",$="shep:animations-toggle",U="no-animations",X="shep-theme";function W({label:e,count:a,children:s}){return(0,t.jsxs)(n.SidebarGroup,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(n.SidebarGroupLabel,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${a} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ms-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:a})]}),(0,t.jsx)(n.SidebarGroupContent,{children:(0,t.jsx)(n.SidebarMenu,{className:"gap-0.5",children:s})})]})}var Y=e.i(99105),V=e.i(81542),Z=e.i(3214);function J({repoName:e,featureCount:s,children:i,defaultOpen:r=!0,onAddFeature:n}){let[o,l]=(0,a.useState)(r);return(0,t.jsxs)("div",{"data-testid":"repo-group",className:"group/repo mb-1",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(!o),className:(0,C.cn)("text-sidebar-foreground hover:bg-sidebar-accent flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-semibold","transition-colors duration-100"),"aria-expanded":o,children:[(0,t.jsx)(Y.ChevronDown,{className:(0,C.cn)("text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform duration-200",!o&&"-rotate-90")}),(0,t.jsx)(V.GitFork,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e}),(0,t.jsx)("span",{"aria-label":`${s} features`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-auto inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:s})]}),n?(0,t.jsx)("button",{type:"button","data-testid":"repo-add-feature",onClick:e=>{e.stopPropagation(),n()},className:(0,C.cn)("text-muted-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent mr-2 shrink-0 rounded-md p-1 opacity-0 transition-all duration-100 group-hover/repo:opacity-100","focus-visible:ring-ring focus-visible:opacity-100 focus-visible:ring-1 focus-visible:outline-none"),"aria-label":`Add feature to ${e}`,children:(0,t.jsx)(Z.Plus,{className:"h-3.5 w-3.5"})}):null]}),o?(0,t.jsx)("div",{className:"pl-2",children:i}):null]})}function ee({label:e,className:a}){return(0,t.jsx)(n.SidebarGroup,{"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 et={version:"unknown",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform",branch:"",commitHash:"",instancePath:"",isDev:!1};function ea({features:e,featureFlags:r,onFeatureClick:o,onAddFeature:w}){let{t:N,i18n:S}=(0,i.useTranslation)("web"),C=(0,s.usePathname)(),{state:P}=(0,n.useSidebar)(),D="collapsed"===P,{mounted:O,visible:q}=function(e,t){let[s,i]=(0,a.useState)(!e),[r,n]=(0,a.useState)(!e);return(0,a.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>n(!0));return()=>cancelAnimationFrame(e)}n(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:s,visible:r}}(D,0),L=function(){let[e,t]=(0,a.useState)(et);return(0,a.useEffect)(()=>{let e=!1;return async function(){try{let a=await fetch("/api/version");if(!a.ok)return;let s=await a.json();e||t(s)}catch{}}(),()=>{e=!0}},[]),e}(),{enabled:I,toggle:Q}=(0,_.useSoundEnabled)(),{enabled:R,toggle:K}=function(){let[e,t]=(0,a.useState)(!0);(0,a.useEffect)(()=>{"false"===localStorage.getItem(G)&&(t(!1),document.body.classList.add(U));let e=e=>{let a=e.detail;t(a),document.body.classList.toggle(U,!a)};return window.addEventListener($,e),()=>window.removeEventListener($,e)},[]);let s=(0,a.useCallback)(()=>{let a=!e;localStorage.setItem(G,String(a)),t(a),document.body.classList.toggle(U,!a),window.dispatchEvent(new CustomEvent($,{detail:a}))},[e]);return{enabled:e,toggle:s}}(),{resolvedTheme:H,theme:Y,setTheme:V}=function(){let[e,t]=(0,a.useState)("system"),[s,i]=(0,a.useState)("light"),r=(0,a.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),n=(0,a.useCallback)(e=>"system"===e?r():e,[r]),o=(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(X,e),o(n(e))},[n,o]);return(0,a.useEffect)(()=>{let e=localStorage.getItem(X)??"system";t(e),o(n(e))},[n,o]),(0,a.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{"system"===e&&o(n("system"))};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e,n,o]),{theme:e,resolvedTheme:s,setTheme:l}}(),Z=(0,j.useSoundAction)("toggle-on"),ea=(0,j.useSoundAction)("toggle-off"),es=(0,j.useSoundAction)("navigate"),ei=(0,a.useMemo)(()=>{let t=new Map;for(let a of e){let e=a.repositoryPath,s=t.get(e);s||(s={repoName:a.repositoryName,features:[]},t.set(e,s)),s.features.push(a)}return Array.from(t.entries()).map(([e,{repoName:t,features:a}])=>({repoPath:e,repoName:t,featureCount:a.length,statusGroups:F.map(e=>({statusKey:e,label:N(z[e].labelKey),items:a.filter(t=>t.status===e)})).filter(e=>e.items.length>0)}))},[e,N]);return(0,t.jsxs)(n.Sidebar,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",side:"rtl"===S.dir()?"right":"left",children:[(0,t.jsx)(n.SidebarHeader,{children:(0,t.jsxs)(n.SidebarMenu,{children:[(0,t.jsx)(n.SidebarMenuItem,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[O?(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",q?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!q,children:[(0,t.jsx)(T.ShepLogo,{className:"shrink-0",size:20,variant:L.isDev?"dev":"default"}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"}),(0,t.jsx)(A,{version:L.version,branch:L.branch||void 0,commitHash:L.commitHash||void 0,isDev:L.isDev,packageName:L.packageName,description:L.description,instancePath:L.instancePath||void 0})]}):null,(0,t.jsx)(M,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(k,{icon:l,label:N("navigation.controlCenter"),href:"/",active:"/"===C}),r.inventory?(0,t.jsx)(k,{icon:y,label:N("navigation.inventory"),href:"/features",active:"/features"===C}):null,(0,t.jsx)(k,{icon:u.LayoutGrid,label:N("navigation.applications"),href:"/applications",active:"/applications"===C}),(0,t.jsx)(k,{icon:g.Wrench,label:N("navigation.tools"),href:"/tools",active:"/tools"===C}),r.skills?(0,t.jsx)(k,{icon:x.Puzzle,label:N("navigation.skills"),href:"/skills",active:"/skills"===C}):null,(0,t.jsx)(k,{icon:b.Settings,label:N("navigation.settings"),href:"/settings",active:"/settings"===C})]})}),(0,t.jsx)(n.SidebarContent,{children:O?(0,t.jsxs)("div",{className:["flex min-h-0 flex-1 flex-col overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",q?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(ee,{label:N("sidebar.features")}),(0,t.jsx)(v.ScrollArea,{className:"min-h-0 flex-1",children:ei.map(({repoPath:e,repoName:a,featureCount:s,statusGroups:i})=>(0,t.jsx)(J,{repoName:a,featureCount:s,onAddFeature:w?()=>w(e):void 0,children:i.map(({statusKey:e,label:a,items:s})=>(0,t.jsx)(W,{label:a,count:s.length,children:s.map(e=>(0,t.jsx)(B,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,agentType:e.agentType,modelId:e.modelId,onClick:o?()=>o(e.featureId):void 0},e.featureId))},e))},e))})]}):null}),(0,t.jsx)(n.SidebarFooter,{className:"border-t p-2",children:(0,t.jsx)(n.SidebarMenu,{children:(0,t.jsx)(n.SidebarMenuItem,{children:(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsxs)(E.TooltipProvider,{children:[(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.SidebarMenuButton,{className:"w-auto flex-none",onClick:e=>{let t="system"===Y?"dark"===H?"light":"dark":"dark"===Y?"light":"dark";"dark"!==("system"===Y?H:Y)?Z.play():ea.play();let a=window.matchMedia("(prefers-reduced-motion: reduce)").matches;"startViewTransition"in document&&!a?(document.documentElement.style.setProperty("--x",`${e.clientX}px`),document.documentElement.style.setProperty("--y",`${e.clientY}px`),document.startViewTransition(()=>{V(t)})):V(t)},"aria-label":"dark"===H?N("sidebar.switchToLight"):N("sidebar.switchToDark"),children:[(0,t.jsx)(d,{className:"h-4 w-4 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(c,{className:"absolute h-4 w-4 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"})]})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:"dark"===H?N("sidebar.switchToLight"):N("sidebar.switchToDark")})]}),!D&&(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(n.SidebarMenuButton,{className:"w-auto flex-none",onClick:()=>{es.play(),Q()},"aria-label":I?N("sidebar.muteSounds"):N("sidebar.unmuteSounds"),children:I?(0,t.jsx)(h,{className:"h-4 w-4"}):(0,t.jsx)(m,{className:"h-4 w-4"})})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:I?N("sidebar.muteSounds"):N("sidebar.unmuteSounds")})]}),!D&&(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(n.SidebarMenuButton,{className:"w-auto flex-none",onClick:()=>{es.play(),K()},"aria-label":R?"Disable animations":"Enable animations",children:R?(0,t.jsx)(p.Zap,{className:"h-4 w-4"}):(0,t.jsx)(f,{className:"h-4 w-4"})})}),(0,t.jsx)(E.TooltipContent,{side:"top",children:R?"Disable animations":"Enable animations"})]})]})})})})}),(0,t.jsx)(n.SidebarRail,{})]})}e.i(13322);var es=e.i(61201),ei=e.i(48109),er=e.i(60253),en=e.i(26370);let eo=(0,o.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var el=e.i(87538);let eu=(0,o.default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var ec=e.i(28112),ed=e.i(57779),eh=e.i(80554),em=e.i(62639),ep=e.i(5147);let ef="shep-global-chat";function eg(){try{let e=localStorage.getItem(ef);if(!e)return{pos:null,size:null};let t=JSON.parse(e),a=t.size??null;return a&&(a.w<360||a.h<300)&&(a={w:Math.max(360,a.w),h:Math.max(300,a.h)}),{pos:t.pos??null,size:a}}catch{return{pos:null,size:null}}}function ex(){let{t:e}=(0,i.useTranslation)("web"),[s,r]=(0,a.useState)(!1),[o,l]=(0,a.useState)(!1),[u,c]=(0,a.useState)(!1),d=(0,eh.useTurnStatus)("global"),{swapPosition:h}=(0,em.useFabLayout)(),{state:m}=(0,n.useSidebar)(),{hasRepositories:p}=(0,ep.useSidebarFeaturesContext)(),[f,g]=(0,a.useState)(()=>eg().pos),[x,b]=(0,a.useState)(()=>eg().size),y=(0,a.useCallback)(e=>{g(t=>"function"==typeof e?e(t):e)},[]),v=(0,a.useCallback)(e=>{b(t=>"function"==typeof e?e(t):e)},[]),w=(0,a.useRef)(null),j=(0,a.useRef)(null),k=(0,a.useRef)(null),N=(0,a.useCallback)(()=>{r(e=>(e||l(!0),!e))},[]),M=(0,a.useRef)({pos:null,size:null}),T=(0,a.useCallback)(()=>{s||(r(!0),l(!0)),c(e=>(e?(y(M.current.pos),v(M.current.size)):M.current={pos:f,size:x},!e))},[s,f,x,y,v]);(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.shiftKey&&("k"===e.key||"K"===e.key)&&(e.preventDefault(),u&&c(!1),N(),requestAnimationFrame(()=>{setTimeout(()=>{let e=w.current?.querySelector("textarea");e?.focus()},100)})),(e.metaKey||e.ctrlKey)&&e.shiftKey&&("m"===e.key||"M"===e.key)&&(e.preventDefault(),T())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[N,T,u]),(0,a.useEffect)(()=>{let e=setTimeout(()=>(function(e,t){try{localStorage.setItem(ef,JSON.stringify({pos:e,size:t}))}catch{}})(f,x),300);return()=>clearTimeout(e)},[f,x]);let E=(0,a.useCallback)((e,t,a)=>({x:Math.max(-a+100,Math.min(e,window.innerWidth-100)),y:Math.max(0,Math.min(t,window.innerHeight-48))}),[]),A=(0,a.useCallback)(e=>{e.preventDefault();let t=w.current;if(!t)return;let a=t.getBoundingClientRect(),s=f?.x??a.left,i=f?.y??a.top;j.current={startX:e.clientX,startY:e.clientY,startPosX:s,startPosY:i};let r=x?.w??a.width,n=e=>{if(!j.current)return;let t=e.clientX-j.current.startX,a=e.clientY-j.current.startY;y(E(j.current.startPosX+t,j.current.startPosY+a,r))},o=()=>{j.current=null,document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",n),document.addEventListener("mouseup",o)},[f,x,y,E]),P=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation();let t=w.current;if(!t)return;let a=t.getBoundingClientRect(),s=x?.w??a.width,i=x?.h??a.height,r=e.clientX,n=e.clientY,o=f?.y??a.top;k.current={startX:r,startY:n,startW:s,startH:i},f||y({x:a.left,y:a.top});let l=e=>{if(!k.current)return;let t=e.clientX-r,l=e.clientY-n,u=Math.max(360,s+t),c=Math.max(300,i-l),d=Math.max(0,o+l);v({w:u,h:c}),y(e=>E(e?.x??a.left,d,u))},u=()=>{k.current=null,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",u)};document.addEventListener("mousemove",l),document.addEventListener("mouseup",u)},[x,f,y,v,E]),D=(0,a.useCallback)(()=>{r(!1),c(!1)},[]),O=u?{}:f?{position:"fixed",left:f.x,top:f.y,width:x?.w??520,height:x?.h??"70vh"}:{width:x?.w??520,height:x?.h??"70vh"};return(0,t.jsxs)(t.Fragment,{children:[o?(0,t.jsxs)("div",{ref:w,className:(0,C.cn)(u?"bg-background fixed inset-0 z-[60] flex flex-col overflow-hidden dark:bg-neutral-900":(0,C.cn)(!f&&(h?"fixed start-8 bottom-24":"fixed end-8 bottom-24"),"z-[60] flex flex-col overflow-hidden rounded-lg","border-border/60 border dark:border-white/10","bg-background dark:bg-neutral-900","shadow-[0_8px_40px_-8px_rgba(0,0,0,0.2)] dark:shadow-[0_8px_40px_-8px_rgba(0,0,0,0.6)]"),"transition-opacity duration-300 ease-out",s?"pointer-events-auto opacity-100":"pointer-events-none opacity-0"),style:O,children:[u?null:(0,t.jsx)("div",{className:"h-[2px] shrink-0 bg-gradient-to-r from-transparent via-violet-500/50 to-transparent"}),u?null:(0,t.jsx)("div",{onMouseDown:P,className:"absolute end-0 top-0 z-10 h-4 w-4 cursor-ne-resize"}),(0,t.jsxs)("div",{onMouseDown:u?void 0:A,className:(0,C.cn)("relative flex h-11 shrink-0 items-center gap-2.5 border-b border-black/[0.06] px-3.5 dark:border-white/[0.06]",!u&&"cursor-grab active:cursor-grabbing"),children:[(0,t.jsx)("div",{className:"from-foreground/[0.02] to-foreground/[0.02] pointer-events-none absolute inset-0 bg-gradient-to-r via-transparent"}),u?null:(0,t.jsx)(eo,{className:"text-foreground/15 relative h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("div",{className:"relative flex h-5 w-5 items-center justify-center",children:(0,t.jsx)(en.Bot,{className:"text-foreground/50 h-4 w-4"})}),(0,t.jsxs)("div",{className:"relative flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"text-foreground/90 text-base font-bold tracking-tight",children:"Shep"}),(0,t.jsx)("span",{className:"text-foreground/30 text-xs font-medium tracking-widest uppercase",children:"global"})]}),(0,t.jsxs)("div",{className:"relative ms-auto flex items-center gap-0.5",children:[(0,t.jsx)("button",{type:"button",onClick:T,className:"text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors",title:u?"Restore (⌘⇧M)":"Maximize (⌘⇧M)",children:u?(0,t.jsx)(eu,{className:"h-3.5 w-3.5"}):(0,t.jsx)(el.Maximize2,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{type:"button",onClick:D,className:"text-foreground/30 hover:text-foreground/60 rounded-md p-1 transition-colors",title:"Close (⌘⇧K)",children:(0,t.jsx)(er.X,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,t.jsx)(ec.ChatTab,{featureId:"global"})}),u?null:(0,t.jsx)("div",{onMouseDown:e=>{e.preventDefault(),e.stopPropagation();let t=w.current;if(!t)return;let a=t.getBoundingClientRect(),s=e.clientX,i=e.clientY,r=x?.w??a.width,n=x?.h??a.height;f||y({x:a.left,y:a.top});let o=e=>{let t=window.innerHeight-(f?.y??a.top);v({w:Math.max(360,r+(e.clientX-s)),h:Math.max(300,Math.min(n+(e.clientY-i),t))})},l=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)},className:"absolute end-0 bottom-0 z-10 h-4 w-4 cursor-se-resize"})]}):null,p?(0,t.jsxs)(eb,{swapPosition:h,sidebarState:m,isMaximized:u,children:[(0,t.jsxs)(S.Button,{size:"icon",onClick:N,className:(0,C.cn)("relative h-14 w-14 rounded-full shadow-lg","transition-all duration-200 hover:scale-105 hover:shadow-xl active:scale-95",s?"bg-violet-600 text-white hover:bg-violet-500":"bg-violet-500 text-white hover:bg-violet-400 dark:bg-violet-500 dark:hover:bg-violet-400",!s&&"processing"===d&&"chat-fab-spinning",!s&&"unread"===d&&"chat-fab-glow-unread",!s&&"awaiting_input"===d&&"chat-fab-glow-awaiting"),children:[(0,t.jsx)(ei.MessageSquare,{className:(0,C.cn)("absolute h-7 w-7 stroke-[2.5] transition-all duration-200",s?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100")}),(0,t.jsx)(er.X,{className:(0,C.cn)("absolute h-6 w-6 stroke-[2.5] transition-all duration-200",s?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0")}),!s&&(0,t.jsx)(ed.ChatDotIndicator,{status:d,className:"end-0 top-0"})]}),(0,t.jsx)("div",{className:"pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 -translate-x-1/2 translate-y-1 opacity-0 transition-all duration-200 group-hover/fab:translate-y-0 group-hover/fab:opacity-100",children:(0,t.jsxs)("div",{className:"bg-foreground rounded-lg px-3 py-1.5 text-center shadow-lg",children:[(0,t.jsx)("p",{className:"text-background text-xs font-medium whitespace-nowrap",children:e("chat.shepChat")}),(0,t.jsxs)("p",{className:"text-background/50 mt-0.5 flex items-center justify-center gap-1 text-[10px]",children:[(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"⌘"}),(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"⇧"}),(0,t.jsx)("kbd",{className:"bg-background/15 rounded px-1 py-px font-mono",children:"K"})]})]})})]}):null]})}function eb({swapPosition:e,sidebarState:a,isMaximized:s,children:r}){let{i18n:n}=(0,i.useTranslation)("web"),o="rtl"===n.dir();if(!e)return(0,t.jsx)("div",{className:(0,C.cn)("group/fab fixed end-8 bottom-6 z-30",s&&"hidden"),children:r});let l="expanded"===a?"calc(var(--sidebar-width) + 32px)":"calc(var(--sidebar-width-icon) + 32px)";return(0,t.jsx)("div",{className:(0,C.cn)("group/fab fixed bottom-6 z-30",s&&"hidden"),style:o?{right:l,transition:"right 200ms ease-in-out"}:{left:l,transition:"left 200ms ease-in-out"},children:r})}var ey=e.i(78521),ev=e.i(2287),ew=e.i(68304),ej=e.i(98127),ek=e.i(41957);let eN=/^(?:https:\/\/github\.com\/([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|git@github\.com:([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+))$/;function eS({onSubmit:e,loading:s=!1}){let[i,r]=(0,a.useState)(""),[n,o]=(0,a.useState)("");function l(){let t=i.trim();t?eN.test(t.trim())?(o(""),e(t)):o("Enter a valid GitHub URL (e.g. owner/repo or https://github.com/owner/repo)"):o("Please enter a GitHub URL")}return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(ek.Label,{htmlFor:"github-url-input",children:"GitHub URL"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(ej.Input,{id:"github-url-input",placeholder:"owner/repo or https://github.com/owner/repo",value:i,onChange:e=>{r(e.target.value),n&&o("")},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),l())},disabled:s,"aria-invalid":!!n,"aria-describedby":n?"github-url-error":void 0}),(0,t.jsx)(S.Button,{onClick:l,disabled:s||!i.trim(),size:"sm",children:s?(0,t.jsx)(q.Loader2,{className:"h-4 w-4 animate-spin"}):"Import"})]}),n?(0,t.jsx)("p",{id:"github-url-error",className:"text-destructive text-sm",role:"alert",children:n}):null]})}let eC=(0,o.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var eM=e.i(32494),eT=e.i(66459),eE=e.i(79687),eA=e.i(81846),eP=e.i(61238),eD=e.i(47373),eO=e.i(21023);let eq=(0,eO.createServerReference)("4031ecccb7cd5c86319137da2af0a51b0c0f8e0d95",eO.callServer,void 0,eO.findSourceMapURL,"listGitHubRepositories"),eL=(0,eO.createServerReference)("0090375660d2bf0df09932302bb2d6896c322ddc2f",eO.callServer,void 0,eO.findSourceMapURL,"listGitHubOrganizations"),eI="__personal__";function eQ({onSelect:e,loading:s=!1,fetchRepos:i=eq,fetchOrgs:r=eL}){let[n,o]=(0,a.useState)([]),[l,u]=(0,a.useState)([]),[c,d]=(0,a.useState)(!0),[h,m]=(0,a.useState)(""),[p,f]=(0,a.useState)(""),[g,x]=(0,a.useState)(eI),b=(0,a.useRef)(null);(0,a.useEffect)(()=>{!async function(){try{let e=await r();e.orgs&&u(e.orgs)}catch{}}()},[r]);let y=(0,a.useCallback)(async(e,t)=>{d(!0),m("");try{let a={};e&&(a.search=e),t&&t!==eI&&(a.owner=t);let s=await i(Object.keys(a).length>0?a:void 0);s.error?(m(s.error),o([])):o(s.repos??[])}catch{m("Failed to fetch repositories"),o([])}finally{d(!1)}},[i]);return((0,a.useEffect)(()=>{y(p||void 0,g)},[y,g]),h&&!c)?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center","data-testid":"repo-browser-error",children:[(0,t.jsx)(eE.AlertCircle,{className:"text-destructive h-8 w-8"}),(0,t.jsx)("p",{className:"text-destructive text-sm",children:h})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[l.length>0?(0,t.jsxs)(eD.Select,{value:g,onValueChange:function(e){x(e),f("")},disabled:s,children:[(0,t.jsx)(eD.SelectTrigger,{"aria-label":"Select owner",children:(0,t.jsx)(eD.SelectValue,{placeholder:"Select owner"})}),(0,t.jsxs)(eD.SelectContent,{children:[(0,t.jsx)(eD.SelectItem,{value:eI,children:"My repositories"}),l.map(e=>(0,t.jsx)(eD.SelectItem,{value:e.login,children:e.login},e.login))]})]}):null,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(eT.Search,{className:"text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2"}),(0,t.jsx)(ej.Input,{placeholder:"Search repositories...",value:p,onChange:e=>{var t;f(t=e.target.value),b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{y(t||void 0,g)},300)},className:"ps-9",disabled:s,"aria-label":"Search repositories"})]}),(0,t.jsx)("div",{className:"max-h-64 overflow-x-hidden overflow-y-auto rounded-md border",role:"listbox","aria-label":"GitHub repositories",children:c?(0,t.jsx)("div",{className:"flex flex-col gap-2 p-3","data-testid":"repo-browser-loading",children:Array.from({length:5}).map((e,a)=>(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)(eP.Skeleton,{className:"h-4 w-48"}),(0,t.jsx)(eP.Skeleton,{className:"h-3 w-72"})]},`skeleton-${String(a)}`))}):0===n.length?(0,t.jsx)("div",{className:"text-muted-foreground py-8 text-center text-sm","data-testid":"repo-browser-empty",children:"No repositories found"}):n.map(a=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!1,className:"hover:bg-accent flex w-full items-start gap-2 border-b px-3 py-2.5 text-start last:border-b-0 disabled:opacity-50",onClick:()=>e(a.nameWithOwner),disabled:s,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:a.nameWithOwner}),(0,t.jsx)(eA.Badge,{variant:a.isPrivate?"secondary":"outline",className:"shrink-0 text-xs",children:a.isPrivate?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eC,{className:"me-1 h-3 w-3"}),"Private"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eM.Globe,{className:"me-1 h-3 w-3"}),"Public"]})})]}),a.description?(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 truncate text-xs",children:a.description}):null]}),s?(0,t.jsx)(q.Loader2,{className:"mt-0.5 h-4 w-4 shrink-0 animate-spin"}):null]},a.nameWithOwner))})]})}let eR=(0,eO.createServerReference)("40895ee90ed9c02eb9b0d9db928e937cde07a407a4",eO.callServer,void 0,eO.findSourceMapURL,"importGitHubRepository");function ez({open:e,onOpenChange:s,onImportComplete:i}){let[r,n]=(0,a.useState)(!1),[o,l]=(0,a.useState)("");async function u(e){n(!0),l("");try{let t=await eR({url:e});t.error?l(t.error):t.repository&&(i(t.repository),s(!1))}catch{l("An unexpected error occurred")}finally{n(!1)}}return(0,t.jsx)(ev.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(ev.DialogContent,{className:"overflow-hidden sm:max-w-lg",children:[(0,t.jsxs)(ev.DialogHeader,{children:[(0,t.jsx)(ev.DialogTitle,{children:"Import from GitHub"}),(0,t.jsx)(ev.DialogDescription,{children:"Clone a GitHub repository and add it to Shep."})]}),(0,t.jsxs)(ew.Tabs,{defaultValue:"url",className:"min-w-0",children:[(0,t.jsxs)(ew.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(ew.TabsTrigger,{value:"url",children:"URL"}),(0,t.jsx)(ew.TabsTrigger,{value:"browse",children:"Browse"})]}),(0,t.jsx)(ew.TabsContent,{value:"url",className:"mt-4",children:(0,t.jsx)(eS,{onSubmit:u,loading:r})}),(0,t.jsx)(ew.TabsContent,{value:"browse",className:"mt-4",children:(0,t.jsx)(eQ,{onSelect:u,loading:r})})]}),o?(0,t.jsx)("p",{className:"text-destructive text-sm",role:"alert",children:o}):null]})})}var eF=e.i(39443),eK=e.i(30153),eH=e.i(60112),eB=e.i(17406);let e_={[eB.NotificationSeverity.Success]:"success",[eB.NotificationSeverity.Error]:"error",[eB.NotificationSeverity.Warning]:"warning",[eB.NotificationSeverity.Info]:"info"},eG={[eB.NotificationSeverity.Success]:"notification-success",[eB.NotificationSeverity.Error]:"notification-error",[eB.NotificationSeverity.Warning]:"notification-warning",[eB.NotificationSeverity.Info]:"notification-info"};var e$=e.i(75921);function eU({children:e,sidebarOpen:i}){let r=(0,s.useRouter)(),{guardedNavigate:o}=(0,eK.useDrawerCloseGuard)(),l=(0,e$.useFeatureFlags)();!function(){let e=(0,s.useRouter)(),{events:t}=(0,eF.useAgentEventsContext)(),i=(0,j.useSoundAction)("notification-success"),r=(0,j.useSoundAction)("notification-error"),n=(0,j.useSoundAction)("notification-warning"),o=(0,j.useSoundAction)("notification-info"),l=(0,a.useMemo)(()=>({"notification-success":i,"notification-error":r,"notification-warning":n,"notification-info":o}),[i,r,n,o]),u=(0,a.useRef)(0);(0,a.useEffect)(()=>{if(t.length<=u.current)return;let a=t.slice(u.current);for(let s of(u.current=t.length,a)){if(s.eventType!==eB.NotificationEventType.MergeReviewReady&&s.severity!==eB.NotificationSeverity.Error&&s.severity!==eB.NotificationSeverity.Warning&&s.severity!==eB.NotificationSeverity.Success)continue;!function(e,t){let a=e_[e.severity]??"info",s=e.eventType===eB.NotificationEventType.WaitingApproval||e.eventType===eB.NotificationEventType.MergeReviewReady;eH.toast[a](e.featureName,{description:e.message,...s&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(s,t=>e.push(t));let t=eG[s.severity];l[t]?.play()}},[t,l,e])}();let{features:u}=(0,ep.useSidebarFeaturesContext)(),c=(0,a.useCallback)(e=>{o(()=>r.push(`/feature/${e}`))},[r,o]),d=(0,a.useCallback)(e=>{o(()=>r.push(`/create?repo=${encodeURIComponent(e)}`))},[r,o]),[h,m]=(0,a.useState)(!1),[p,f]=(0,a.useState)(!1),[g,x]=(0,a.useState)(!1),b=(0,a.useCallback)(async()=>{if(!h){if(l.reactFileManager)return void x(!0);m(!0);try{let e=await (0,ey.pickFolder)();e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))}catch{x(!0)}finally{m(!1)}}},[h,l.reactFileManager]);(0,a.useEffect)(()=>{let e=()=>{b()};return window.addEventListener("shep:pick-folder",e),()=>window.removeEventListener("shep:pick-folder",e)},[b]),(0,a.useEffect)(()=>{let e=()=>f(!0);return window.addEventListener("shep:open-github-import",e),()=>window.removeEventListener("shep:open-github-import",e)},[]);let y=(0,a.useCallback)(e=>{e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}})),x(!1)},[]),v=(0,a.useCallback)(e=>{e.path&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e.path}}))},[]);return(0,t.jsxs)(n.SidebarProvider,{defaultOpen:i??!1,children:[(0,t.jsx)(ea,{features:u,featureFlags:l,onFeatureClick:c,onAddFeature:d}),(0,t.jsx)(n.SidebarInset,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsx)("main",{className:"h-full",children:e}),(0,t.jsx)(ex,{}),l.githubImport?(0,t.jsx)(ez,{open:p,onOpenChange:f,onImportComplete:v}):null]})}),(0,t.jsx)(es.ReactFileManagerDialog,{open:g,onOpenChange:e=>{e||x(!1)},onSelect:y})]})}function eX({children:e}){return(0,t.jsx)(eh.TurnStatusesProvider,{children:e})}function eW({children:e,sidebarOpen:a}){let{i18n:s}=(0,i.useTranslation)(),n=s.dir();return(0,t.jsx)(r.Direction.Provider,{dir:n,children:(0,t.jsx)(eF.AgentEventsProvider,{children:(0,t.jsx)(eK.DrawerCloseGuardProvider,{children:(0,t.jsx)(ep.SidebarFeaturesProvider,{children:(0,t.jsx)(eX,{children:(0,t.jsx)(eU,{sidebarOpen:a,children:e})})})})})})}e.s(["AppShell",()=>eW],87292)},25251,e=>{"use strict";var t=e.i(20314),a=e.i(60112);let s=({...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",()=>s])},4858,e=>{"use strict";var t=e.i(20314),a=e.i(3),s=e.i(28574),i=e.i(6786),r=e.i(77501),n=class extends r.Subscribable{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,i){let r=t.queryKey,n=t.queryHash??(0,a.hashQueryKeyByOptions)(r,t),o=this.get(n);return o||(o=new s.Query({client:e,queryKey:r,queryHash:n,options:e.defaultQueryOptions(t),state:i,defaultOptions:e.getQueryDefaults(r)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.matchQuery)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,a.matchQuery)(e,t)):t}notify(e){i.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){i.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},o=e.i(87975),l=r,u=class extends l.Subscribable{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#a=new Map,this.#s=0}#t;#a;#s;build(e,t,a){let s=new o.Mutation({client:e,mutationCache:this,mutationId:++this.#s,options:e.defaultMutationOptions(t),state:a});return this.add(s),s}add(e){this.#t.add(e);let t=c(e);if("string"==typeof t){let a=this.#a.get(t);a?a.push(e):this.#a.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=c(e);if("string"==typeof t){let a=this.#a.get(t);if(a)if(a.length>1){let t=a.indexOf(e);-1!==t&&a.splice(t,1)}else a[0]===e&&this.#a.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=c(e);if("string"!=typeof t)return!0;{let a=this.#a.get(t),s=a?.find(e=>"pending"===e.state.status);return!s||s===e}}runNext(e){let t=c(e);if("string"!=typeof t)return Promise.resolve();{let a=this.#a.get(t)?.find(t=>t!==e&&t.state.isPaused);return a?.continue()??Promise.resolve()}}clear(){i.notifyManager.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#a.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.matchMutation)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,a.matchMutation)(e,t))}notify(e){i.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return i.notifyManager.batch(()=>Promise.all(e.map(e=>e.continue().catch(a.noop))))}};function c(e){return e.options.scope?.id}var d=e.i(4520),h=e.i(13598);function m(e){return{onFetch:(t,s)=>{let i=t.options,r=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],o=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},u=0,c=async()=>{let s=!1,c=(0,a.ensureQueryFn)(t.options,t.fetchOptions),d=async(e,i,r)=>{let n;if(s)return Promise.reject();if(null==i&&e.pages.length)return Promise.resolve(e);let o=(n={client:t.client,queryKey:t.queryKey,pageParam:i,direction:r?"backward":"forward",meta:t.options.meta},(0,a.addConsumeAwareSignal)(n,()=>t.signal,()=>s=!0),n),l=await c(o),{maxPages:u}=t.options,d=r?a.addToStart:a.addToEnd;return{pages:d(e.pages,l,u),pageParams:d(e.pageParams,i,u)}};if(r&&n.length){let e="backward"===r,t={pages:n,pageParams:o},a=(e?function(e,{pages:t,pageParams:a}){return t.length>0?e.getPreviousPageParam?.(t[0],t,a[0],a):void 0}:p)(i,t);l=await d(t,a,e)}else{let t=e??n.length;do{let e=0===u?o[0]??i.initialPageParam:p(i,l);if(u>0&&null==e)break;l=await d(l,e),u++}while(u<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=c}}}function p(e,{pages:t,pageParams:a}){let s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,a[s],a):void 0}var f=class{#i;#r;#n;#o;#l;#u;#c;#d;constructor(e={}){this.#i=e.queryCache||new n,this.#r=e.mutationCache||new u,this.#n=e.defaultOptions||{},this.#o=new Map,this.#l=new Map,this.#u=0}mount(){this.#u++,1===this.#u&&(this.#c=d.focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onFocus())}),this.#d=h.onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#i.onOnline())}))}unmount(){this.#u--,0===this.#u&&(this.#c?.(),this.#c=void 0,this.#d?.(),this.#d=void 0)}isFetching(e){return this.#i.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#r.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#i.build(this,t),i=s.state.data;return void 0===i?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,a.resolveStaleTime)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(i))}getQueriesData(e){return this.#i.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let i=this.defaultQueryOptions({queryKey:e}),r=this.#i.get(i.queryHash),n=r?.state.data,o=(0,a.functionalUpdate)(t,n);if(void 0!==o)return this.#i.build(this,i).setData(o,{...s,manual:!0})}setQueriesData(e,t,a){return i.notifyManager.batch(()=>this.#i.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,a)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#i.get(t.queryHash)?.state}removeQueries(e){let t=this.#i;i.notifyManager.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let a=this.#i;return i.notifyManager.batch(()=>(a.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(i.notifyManager.batch(()=>this.#i.findAll(e).map(e=>e.cancel(s)))).then(a.noop).catch(a.noop)}invalidateQueries(e,t={}){return i.notifyManager.batch(()=>(this.#i.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(i.notifyManager.batch(()=>this.#i.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(a.noop)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(a.noop)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#i.build(this,t);return s.isStaleByTime((0,a.resolveStaleTime)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(a.noop).catch(a.noop)}fetchInfiniteQuery(e){return e.behavior=m(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(a.noop).catch(a.noop)}ensureInfiniteQueryData(e){return e.behavior=m(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return h.onlineManager.isOnline()?this.#r.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#i}getMutationCache(){return this.#r}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#o.set((0,a.hashKey)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#o.values()],s={};return t.forEach(t=>{(0,a.partialMatchKey)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,a.hashKey)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,a.partialMatchKey)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,a.hashQueryKeyByOptions)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===a.skipToken&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#i.clear(),this.#r.clear()}},g=e.i(34682),x=e.i(79054);function b({children:e}){let[a]=(0,x.useState)(()=>new f({defaultOptions:{queries:{staleTime:1e3,refetchOnWindowFocus:!1}}}));return(0,t.jsx)(g.QueryClientProvider,{client:a,children:e})}e.s(["QueryProvider",()=>b],4858)},10644,e=>{"use strict";let t;var a=e.i(20314),s=e.i(79054);e.i(41001);var i=e.i(14827),r=e.i(99065),n=e.i(83100),o=e.i(37465),l=e.i(51193),u=e.i(16912),c=e.i(88687),d=e.i(55431),h=e.i(60280),m=e.i(40266),p=e.i(50784),f=e.i(28191),g=e.i(71363),x=e.i(53493),b=e.i(22307),y=e.i(44225),v=e.i(62305),w=e.i(51943),j=e.i(88158),k=e.i(39711),N=e.i(32456);let S=((t=r.default.createInstance()).use(n.initReactI18next).init({lng:"en",fallbackLng:"en",defaultNS:"common",ns:["common","web"],resources:{en:{common:o.default,web:l.default},uk:{common:u.default,web:c.default},ru:{common:d.default,web:h.default},pt:{common:m.default,web:p.default},es:{common:f.default,web:g.default},ar:{common:x.default,web:b.default},he:{common:y.default,web:v.default},fr:{common:w.default,web:j.default},de:{common:k.default,web:N.default}},interpolation:{escapeValue:!1},react:{useSuspense:!1}}),t),C={ar:{family:"Noto Sans Arabic",cssUrl:"https://fonts.googleapis.com/css2?family=Noto+Sans+Arabic:wght@400;500;600;700&display=swap"},he:{family:"Noto Sans Hebrew",cssUrl:"https://fonts.googleapis.com/css2?family=Noto+Sans+Hebrew:wght@400;500;600;700&display=swap"}};function M(e){let t=C[e];if(document.documentElement.classList.remove("font-rtl-arabic","font-rtl-hebrew"),!t)return void document.documentElement.style.removeProperty("--font-rtl");document.documentElement.style.setProperty("--font-rtl",`"${t.family}"`),document.documentElement.classList.add("ar"===e?"font-rtl-arabic":"font-rtl-hebrew");let a=`rtl-font-${e}`;if(!document.getElementById(a)){let e=document.createElement("link");e.id=a,e.rel="stylesheet",e.href=t.cssUrl,document.head.appendChild(e)}}function T({initialLanguage:e,children:t}){return(0,s.useEffect)(()=>{S.language!==e&&S.changeLanguage(e),M(e)},[e]),(0,s.useEffect)(()=>{function e(e){M(e)}return S.on("languageChanged",e),()=>{S.off("languageChanged",e)}},[]),(0,a.jsx)(i.I18nextProvider,{i18n:S,children:t})}e.s(["I18nProvider",()=>T],10644)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,11495,72714,81803,5259,99348,45811,e=>{"use strict";let t;var n=e.i(20314),r=e.i(79054),a=e.i(48249),o=e.i(24042),l=e.i(6910),i=e.i(94237),s=e.i(31777),u=e.i(83428),d=e.i(51251),c=e.i(35364),f=e.i(8361);function m({label:e,onClick:t,loading:r,error:a,icon:o,iconOnly:l=!1,variant:i="outline",size:m="sm"}){let p=(0,f.useSoundAction)("click");return(0,n.jsxs)(c.Button,{variant:i,size:m,"aria-label":e,disabled:r,onClick:()=>{p.play(),t()},className:(0,s.cn)("gap-1.5",a&&"text-destructive hover:text-destructive",!a&&l&&"ghost"===i&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[r?(0,n.jsx)(u.Loader2,{className:"size-4 animate-spin"}):a?(0,n.jsx)(d.CircleAlert,{className:"size-4"}):(0,n.jsx)(o,{className:"size-4"}),l?null:e]})}e.s(["ActionButton",()=>m],72714),e.s([],81803);var p=e.i(30702),h=e.i(38573),g=e.i(17406),v=e.i(2828),w=e.i(2287),x=e.i(21023);let b=(0,x.createServerReference)("40c3fcb203be759711825a5cac090e83e5c3b8e45f",x.callServer,void 0,x.findSourceMapURL,"getDeploymentLogs");function y({open:e,onOpenChange:t,targetId:a}){let{logs:o,isConnected:l}=function(e){let[t,n]=(0,r.useState)([]),[a,o]=(0,r.useState)(!1),l=(0,r.useRef)(null),i=(0,r.useCallback)(()=>{l.current&&(l.current.close(),l.current=null),o(!1)},[]);return(0,r.useEffect)(()=>{if(!e){n([]),o(!1);return}b(e).then(e=>{e&&n(e)}).catch(()=>{});let t=new EventSource(`/api/deployment-logs?targetId=${e}`);return l.current=t,t.onopen=()=>{o(!0)},t.addEventListener("log",e=>{let t=JSON.parse(e.data);n(e=>[...e,t])}),t.onerror=()=>{o(!1)},()=>{t.close(),l.current=null}},[e,i]),{logs:t,isConnected:a}}(e?a:null);return(0,n.jsx)(j,{open:e,onOpenChange:t,logs:o,isConnected:l})}function j({open:e,onOpenChange:t,logs:a,isConnected:o}){let l=(0,r.useRef)(null),i=(0,r.useRef)(!0),s=(0,r.useCallback)(()=>{let e=l.current;e&&(i.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);return(0,r.useEffect)(()=>{i.current&&l.current&&(l.current.scrollTop=l.current.scrollHeight)},[a]),(0,n.jsx)(w.Dialog,{open:e,onOpenChange:t,children:(0,n.jsxs)(w.DialogContent,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,n.jsxs)(w.DialogHeader,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(h.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,n.jsx)(w.DialogTitle,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 pe-8",children:[(0,n.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${o?"bg-green-500":"bg-zinc-500"}`}),(0,n.jsx)("span",{className:"text-xs text-zinc-400",children:o?"Connected":"Disconnected"})]})]}),(0,n.jsxs)("div",{ref:l,onScroll:s,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===a.length?(0,n.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):a.map(e=>(0,n.jsx)(T,{entry:e},`${e.timestamp}-${e.stream}-${e.line}`)),!o&&a.length>0&&(0,n.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function T({entry:e}){return(0,n.jsx)("div",{"data-stream":e.stream,className:"stderr"===e.stream?"text-red-400":"text-zinc-200",children:(0,n.jsx)("span",{className:"break-all whitespace-pre-wrap",children:e.line})})}let C="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]";function R({status:e,url:t,targetId:a}){let[o,l]=(0,r.useState)(!1),i=a&&(e===g.DeploymentState.Booting||e===g.DeploymentState.Ready);switch(e){case g.DeploymentState.Booting:return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 pl-1",children:[(0,n.jsx)(u.Loader2,{className:"size-3 animate-spin text-blue-500"}),(0,n.jsx)("span",{className:"text-muted-foreground text-[11px]",children:"Starting..."}),i?(0,n.jsx)(v.TooltipProvider,{delayDuration:300,children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("button",{type:"button","aria-label":"View server logs",className:C,onClick:e=>{e.stopPropagation(),l(!0)},children:(0,n.jsx)(h.Terminal,{className:"size-3.5"})})}),(0,n.jsx)(v.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),i?(0,n.jsx)(y,{open:o,onOpenChange:l,targetId:a}):null]});case g.DeploymentState.Ready:return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex translate-y-px items-center gap-1 pl-1",children:[(0,n.jsx)("span",{className:"inline-block size-1.5 rounded-full bg-green-500"}),t?(0,n.jsxs)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300",onClick:e=>e.stopPropagation(),children:[t,(0,n.jsx)(p.ExternalLink,{className:"size-2.5 shrink-0"})]}):(0,n.jsx)("span",{className:"text-[11px] text-green-600 dark:text-green-400",children:"Ready"}),i?(0,n.jsx)(v.TooltipProvider,{delayDuration:300,children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("button",{type:"button","aria-label":"View server logs",className:C,onClick:e=>{e.stopPropagation(),l(!0)},children:(0,n.jsx)(h.Terminal,{className:"size-3.5"})})}),(0,n.jsx)(v.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),i?(0,n.jsx)(y,{open:o,onOpenChange:l,targetId:a}):null]});default:return null}}e.s(["DeploymentStatusBadge",()=>R],5259),e.s([],99348);var E=e.i(567);let D=r.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),N=()=>{let e=r.default.useContext(D);if(!e)throw Error("useDrawerContext must be used within a Drawer.Root");return e};function k(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function S(){return $(/^iPhone/)||$(/^iPad/)||$(/^Mac/)&&navigator.maxTouchPoints>1}function $(e){return"u">typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let P="u">typeof window?r.useLayoutEffect:r.useEffect;function z(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}let M="u">typeof document&&window.visualViewport;function O(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function B(e){for(O(e)&&(e=e.parentElement);e&&!O(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}let L=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),F=0;function H(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function A(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=B(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;e.getBoundingClientRect().bottom>t.getBoundingClientRect().bottom+24&&(t.scrollTop+=r-n)}e=t.parentElement}}function W(e){return e instanceof HTMLInputElement&&!L.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function I(...e){return r.useCallback(function(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}(...e),e)}let q=new WeakMap;function Y(e,t,n=!1){if(!e||!(e instanceof HTMLElement))return;let r={};Object.entries(t).forEach(([t,n])=>{t.startsWith("--")?e.style.setProperty(t,n):(r[t]=e.style[t],e.style[t]=n)}),n||q.set(e,r)}let X=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function U(e,t){if(!e)return null;let n=window.getComputedStyle(e),r=n.transform||n.webkitTransform||n.mozTransform,a=r.match(/^matrix3d\((.+)\)$/);return a?parseFloat(a[1].split(", ")[X(t)?13:12]):(a=r.match(/^matrix\((.+)\)$/))?parseFloat(a[1].split(", ")[X(t)?5:4]):null}function V(e,t){if(!e)return()=>{};let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}let K=[.32,.72,0,1],J="vaul-dragging";function _(e){let t=r.default.useRef(e);return r.default.useEffect(()=>{t.current=e}),r.default.useMemo(()=>(...e)=>null==t.current?void 0:t.current.call(t,...e),[])}function G({prop:e,defaultProp:t,onChange:n=()=>{}}){let[a,o]=function({defaultProp:e,onChange:t}){let n=r.default.useState(e),[a]=n,o=r.default.useRef(a),l=_(t);return r.default.useEffect(()=>{o.current!==a&&(l(a),o.current=a)},[a,o,l]),n}({defaultProp:t,onChange:n}),l=void 0!==e,i=l?e:a,s=_(n);return[i,r.default.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&s(n)}else o(t)},[l,e,o,s])]}let Q=()=>()=>{},Z=null;function ee({open:e,onOpenChange:n,children:a,onDrag:o,onRelease:l,snapPoints:i,shouldScaleBackground:s=!1,setBackgroundColorOnScale:u=!0,closeThreshold:d=.25,scrollLockTimeout:c=100,dismissible:f=!0,handleOnly:m=!1,fadeFromIndex:p=i&&i.length-1,activeSnapPoint:h,setActiveSnapPoint:g,fixed:v,modal:w=!0,onClose:x,nested:b,noBodyStyles:y=!1,direction:j="bottom",defaultOpen:T=!1,disablePreventScroll:C=!0,snapToSequentialPoint:R=!1,preventScrollRestoration:N=!1,repositionInputs:$=!0,onAnimationEnd:O,container:L,autoFocus:I=!1}){var V,_;let[Q=!1,ee]=G({defaultProp:T,prop:e,onChange:e=>{null==n||n(e),e||b||e$(),setTimeout(()=>{null==O||O(e)},500),e&&!w&&"u">typeof window&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),e||(document.body.style.pointerEvents="auto")}}),[et,en]=r.default.useState(!1),[er,ea]=r.default.useState(!1),[eo,el]=r.default.useState(!1),ei=r.default.useRef(null),es=r.default.useRef(null),eu=r.default.useRef(null),ed=r.default.useRef(null),ec=r.default.useRef(null),ef=r.default.useRef(!1),em=r.default.useRef(null),ep=r.default.useRef(0),eh=r.default.useRef(!1),eg=r.default.useRef(!T),ev=r.default.useRef(0),ew=r.default.useRef(null),ex=r.default.useRef((null==(V=ew.current)?void 0:V.getBoundingClientRect().height)||0),eb=r.default.useRef((null==(_=ew.current)?void 0:_.getBoundingClientRect().width)||0),ey=r.default.useRef(0),ej=r.default.useCallback(e=>{i&&e===eD.length-1&&(es.current=new Date)},[]),{activeSnapPoint:eT,activeSnapPointIndex:eC,setActiveSnapPoint:eR,onRelease:eE,snapPointsOffset:eD,onDrag:eN,shouldFade:ek,getPercentageDragged:eS}=function({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:n,drawerRef:a,overlayRef:o,fadeFromIndex:l,onSnapPointChange:i,direction:s="bottom",container:u,snapToSequentialPoint:d}){let[c,f]=G({prop:e,defaultProp:null==n?void 0:n[0],onChange:t}),[m,p]=r.default.useState("u">typeof window?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);r.default.useEffect(()=>{function e(){p({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let h=r.default.useMemo(()=>c===(null==n?void 0:n[n.length-1])||null,[n,c]),g=r.default.useMemo(()=>{var e;return null!=(e=null==n?void 0:n.findIndex(e=>e===c))?e:null},[n,c]),v=n&&n.length>0&&(l||0===l)&&!Number.isNaN(l)&&n[l]===c||!n,w=r.default.useMemo(()=>{var e;let t=u?{width:u.getBoundingClientRect().width,height:u.getBoundingClientRect().height}:"u">typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};return null!=(e=null==n?void 0:n.map(e=>{let n="string"==typeof e,r=0;if(n&&(r=parseInt(e,10)),X(s)){let a=n?r:m?e*t.height:0;return m?"bottom"===s?t.height-a:-t.height+a:a}let a=n?r:m?e*t.width:0;return m?"right"===s?t.width-a:-t.width+a:a}))?e:[]},[n,m,u]),x=r.default.useMemo(()=>null!==g?null==w?void 0:w[g]:null,[w,g]),b=r.default.useCallback(e=>{var t;let r=null!=(t=null==w?void 0:w.findIndex(t=>t===e))?t:null;i(r),Y(a.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(s)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`}),w&&r!==w.length-1&&void 0!==l&&r!==l&&r<l?Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"0"}):Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"1"}),f(null==n?void 0:n[Math.max(r,0)])},[a.current,n,w,l,o,f]);return r.default.useEffect(()=>{if(c||e){var t;let r=null!=(t=null==n?void 0:n.findIndex(t=>t===e||t===c))?t:-1;w&&-1!==r&&"number"==typeof w[r]&&b(w[r])}},[c,e,n,w,b]),{isLastSnapPoint:h,activeSnapPoint:c,shouldFade:v,getPercentageDragged:function(e,t){if(!n||"number"!=typeof g||!w||void 0===l)return null;let r=g===l-1;if(g>=l&&t)return 0;if(r&&!t)return 1;if(!v&&!r)return null;let a=r?g+1:g-1,o=e/Math.abs(r?w[a]-w[a-1]:w[a+1]-w[a]);return r?1-o:o},setActiveSnapPoint:f,activeSnapPointIndex:g,onRelease:function({draggedDistance:e,closeDrawer:t,velocity:r,dismissible:a}){if(void 0===l)return;let i="bottom"===s||"right"===s?(null!=x?x:0)-e:(null!=x?x:0)+e,u=g===l-1,c=0===g,f=e>0;if(u&&Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`}),!d&&r>2&&!f)return void(a?t():b(w[0]));if(!d&&r>2&&f&&w&&n)return void b(w[n.length-1]);let m=null==w?void 0:w.reduce((e,t)=>"number"!=typeof e||"number"!=typeof t?e:Math.abs(t-i)<Math.abs(e-i)?t:e),p=X(s)?window.innerHeight:window.innerWidth;if(r>.4&&Math.abs(e)<.4*p){let e=f?1:-1;return e>0&&h&&n?void b(w[n.length-1]):void(c&&e<0&&a&&t(),null===g||b(w[g+e]))}b(m)},onDrag:function({draggedDistance:e}){if(null===x)return;let t="bottom"===s||"right"===s?x-e:x+e;("bottom"===s||"right"===s)&&t<w[w.length-1]||("top"===s||"left"===s)&&t>w[w.length-1]||Y(a.current,{transform:X(s)?`translate3d(0, ${t}px, 0)`:`translate3d(${t}px, 0, 0)`})},snapPointsOffset:w}}({snapPoints:i,activeSnapPointProp:h,setActiveSnapPointProp:g,drawerRef:ew,fadeFromIndex:p,overlayRef:ei,onSnapPointChange:ej,direction:j,container:L,snapToSequentialPoint:R});!function(e={}){let{isDisabled:n}=e;P(()=>{if(!n){var e,r,a;let n,o,l,i,s,u,d;return 1==++F&&S()&&(l=0,i=window.pageXOffset,s=window.pageYOffset,u=z((e=document.documentElement,r="paddingRight",a=`${window.innerWidth-document.documentElement.clientWidth}px`,n=e.style[r],e.style[r]=a,()=>{e.style[r]=n})),window.scrollTo(0,0),d=z(H(document,"touchstart",e=>{((o=B(e.target))!==document.documentElement||o!==document.body)&&(l=e.changedTouches[0].pageY)},{passive:!1,capture:!0}),H(document,"touchmove",e=>{if(!o||o===document.documentElement||o===document.body)return void e.preventDefault();let t=e.changedTouches[0].pageY,n=o.scrollTop,r=o.scrollHeight-o.clientHeight;0!==r&&((n<=0&&t>l||n>=r&&t<l)&&e.preventDefault(),l=t)},{passive:!1,capture:!0}),H(document,"touchend",e=>{let t=e.target;W(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame(()=>{t.style.transform=""}))},{passive:!1,capture:!0}),H(document,"focus",e=>{let t=e.target;W(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{t.style.transform="",M&&(M.height<window.innerHeight?requestAnimationFrame(()=>{A(t)}):M.addEventListener("resize",()=>A(t),{once:!0}))}))},!0),H(window,"scroll",()=>{window.scrollTo(0,0)})),t=()=>{u(),d(),window.scrollTo(i,s)}),()=>{0==--F&&(null==t||t())}}},[n])}({isDisabled:!Q||er||!w||eo||!et||!$||!C});let{restorePositionSetting:e$}=function({isOpen:e,modal:t,nested:n,hasBeenOpened:a,preventScrollRestoration:o,noBodyStyles:l}){let[i,s]=r.default.useState(()=>"u">typeof window?window.location.href:""),u=r.default.useRef(0),d=r.default.useCallback(()=>{if(k()&&null===Z&&e&&!l){Z={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:e,innerHeight:t}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-u.current}px`,left:`${-e}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let e=t-window.innerHeight;e&&u.current>=t&&(document.body.style.top=`${-(u.current+e)}px`)}),300)}},[e]),c=r.default.useCallback(()=>{if(k()&&null!==Z&&!l){let e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);Object.assign(document.body.style,Z),window.requestAnimationFrame(()=>{o&&i!==window.location.href?s(window.location.href):window.scrollTo(t,e)}),Z=null}},[i]);return r.default.useEffect(()=>{function e(){u.current=window.scrollY}return e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),r.default.useEffect(()=>{if(t)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||c()}},[t,c]),r.default.useEffect(()=>{!n&&a&&(e?(window.matchMedia("(display-mode: standalone)").matches||d(),t||window.setTimeout(()=>{c()},500)):c())},[e,a,i,t,n,d,c]),{restorePositionSetting:c}}({isOpen:Q,modal:w,nested:null!=b&&b,hasBeenOpened:et,preventScrollRestoration:N,noBodyStyles:y});function eP(){return(window.innerWidth-26)/window.innerWidth}function ez(e,t){var n;let r=e,a=null==(n=window.getSelection())?void 0:n.toString(),o=ew.current?U(ew.current,j):null,l=new Date;if("SELECT"===r.tagName||r.hasAttribute("data-vaul-no-drag")||r.closest("[data-vaul-no-drag]"))return!1;if("right"===j||"left"===j)return!0;if(es.current&&l.getTime()-es.current.getTime()<500)return!1;if(null!==o&&("bottom"===j?o>0:o<0))return!0;if(a&&a.length>0)return!1;if(ec.current&&l.getTime()-ec.current.getTime()<c&&0===o||t)return ec.current=l,!1;for(;r;){if(r.scrollHeight>r.clientHeight){if(0!==r.scrollTop)return ec.current=new Date,!1;if("dialog"===r.getAttribute("role"))break}r=r.parentNode}return!0}function eM(e){er&&ew.current&&(ew.current.classList.remove(J),ef.current=!1,ea(!1),ed.current=new Date),null==x||x(),e||ee(!1),setTimeout(()=>{i&&eR(i[0])},500)}function eO(){if(!ew.current)return;let e=document.querySelector("[data-vaul-drawer-wrapper]"),t=U(ew.current,j);Y(ew.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${K.join(",")})`}),Y(ei.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"1"}),s&&t&&t>0&&Q&&Y(e,{borderRadius:"8px",overflow:"hidden",...X(j)?{transform:`scale(${eP()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${eP()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${K.join(",")})`},!0)}return r.default.useEffect(()=>{window.requestAnimationFrame(()=>{eg.current=!0})},[]),r.default.useEffect(()=>{var e;function t(){if(ew.current&&$&&(W(document.activeElement)||eh.current)){var e;let t=(null==(e=window.visualViewport)?void 0:e.height)||0,n=window.innerHeight,r=n-t,a=ew.current.getBoundingClientRect().height||0;ey.current||(ey.current=a);let o=ew.current.getBoundingClientRect().top;if(Math.abs(ev.current-r)>60&&(eh.current=!eh.current),i&&i.length>0&&eD&&eC&&(r+=eD[eC]||0),ev.current=r,a>t||eh.current){let e=ew.current.getBoundingClientRect().height,l=e;e>t&&(l=t-(a>.8*n?o:26)),v?ew.current.style.height=`${e-Math.max(r,0)}px`:ew.current.style.height=`${Math.max(l,t-o)}px`}else{let e;e=navigator.userAgent,"u">typeof window&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))||(ew.current.style.height=`${ey.current}px`)}i&&i.length>0&&!eh.current?ew.current.style.bottom="0px":ew.current.style.bottom=`${Math.max(r,0)}px`}}return null==(e=window.visualViewport)||e.addEventListener("resize",t),()=>{var e;return null==(e=window.visualViewport)?void 0:e.removeEventListener("resize",t)}},[eC,i,eD]),r.default.useEffect(()=>(Q&&(Y(document.documentElement,{scrollBehavior:"auto"}),es.current=new Date),()=>{!function(e,t){if(!e||!(e instanceof HTMLElement))return;let n=q.get(e);n&&(e.style[t]=n[t])}(document.documentElement,"scrollBehavior")}),[Q]),r.default.useEffect(()=>{w||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[w]),r.default.createElement(E.Root,{defaultOpen:T,onOpenChange:e=>{(f||e)&&(e?en(!0):eM(!0),ee(e))},open:Q},r.default.createElement(D.Provider,{value:{activeSnapPoint:eT,snapPoints:i,setActiveSnapPoint:eR,drawerRef:ew,overlayRef:ei,onOpenChange:n,onPress:function(e){var t,n;!f&&!i||(!ew.current||ew.current.contains(e.target))&&(ex.current=(null==(t=ew.current)?void 0:t.getBoundingClientRect().height)||0,eb.current=(null==(n=ew.current)?void 0:n.getBoundingClientRect().width)||0,ea(!0),eu.current=new Date,S()&&window.addEventListener("touchend",()=>ef.current=!1,{once:!0}),e.target.setPointerCapture(e.pointerId),ep.current=X(j)?e.pageY:e.pageX)},onRelease:function(e){var t,n;if(!er||!ew.current)return;ew.current.classList.remove(J),ef.current=!1,ea(!1),ed.current=new Date;let r=U(ew.current,j);if(!e||!ez(e.target,!1)||!r||Number.isNaN(r)||null===eu.current)return;let a=ed.current.getTime()-eu.current.getTime(),o=ep.current-(X(j)?e.pageY:e.pageX),s=Math.abs(o)/a;if(s>.05&&(el(!0),setTimeout(()=>{el(!1)},200)),i){eE({draggedDistance:o*("bottom"===j||"right"===j?1:-1),closeDrawer:eM,velocity:s,dismissible:f}),null==l||l(e,!0);return}if("bottom"===j||"right"===j?o>0:o<0){eO(),null==l||l(e,!0);return}if(s>.4){eM(),null==l||l(e,!1);return}let u=Math.min(null!=(t=ew.current.getBoundingClientRect().height)?t:0,window.innerHeight),c=Math.min(null!=(n=ew.current.getBoundingClientRect().width)?n:0,window.innerWidth);if(Math.abs(r)>=("left"===j||"right"===j?c:u)*d){eM(),null==l||l(e,!1);return}null==l||l(e,!0),eO()},onDrag:function(e){if(ew.current&&er){let t="bottom"===j||"right"===j?1:-1,n=(ep.current-(X(j)?e.pageY:e.pageX))*t,r=n>0,a=i&&!f&&!r;if(a&&0===eC)return;let l=Math.abs(n),u=document.querySelector("[data-vaul-drawer-wrapper]"),d=l/("bottom"===j||"top"===j?ex.current:eb.current),c=eS(l,r);if(null!==c&&(d=c),a&&d>=1||!ef.current&&!ez(e.target,r))return;if(ew.current.classList.add(J),ef.current=!0,Y(ew.current,{transition:"none"}),Y(ei.current,{transition:"none"}),i&&eN({draggedDistance:n}),r&&!i){let e=Math.min(-(8*(Math.log(n+1)-2)*1),0)*t;Y(ew.current,{transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`});return}let m=1-d;if((ek||p&&eC===p-1)&&(null==o||o(e,d),Y(ei.current,{opacity:`${m}`,transition:"none"},!0)),u&&ei.current&&s){let e=Math.min(eP()+d*(1-eP()),1),t=8-8*d,n=Math.max(0,14-14*d);Y(u,{borderRadius:`${t}px`,transform:X(j)?`scale(${e}) translate3d(0, ${n}px, 0)`:`scale(${e}) translate3d(${n}px, 0, 0)`,transition:"none"},!0)}if(!i){let e=l*t;Y(ew.current,{transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})}}},dismissible:f,shouldAnimate:eg,handleOnly:m,isOpen:Q,isDragging:er,shouldFade:ek,closeDrawer:eM,onNestedDrag:function(e,t){if(t<0)return;let n=(window.innerWidth-16)/window.innerWidth,r=n+t*(1-n),a=-16+16*t;Y(ew.current,{transform:X(j)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(e){let t=e?(window.innerWidth-16)/window.innerWidth:1,n=e?-16:0;em.current&&window.clearTimeout(em.current),Y(ew.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(j)?`scale(${t}) translate3d(0, ${n}px, 0)`:`scale(${t}) translate3d(${n}px, 0, 0)`}),!e&&ew.current&&(em.current=setTimeout(()=>{let e=U(ew.current,j);Y(ew.current,{transition:"none",transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})},500))},onNestedRelease:function(e,t){let n=X(j)?window.innerHeight:window.innerWidth,r=t?(n-16)/n:1,a=t?-16:0;t&&Y(ew.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(j)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`})},keyboardIsOpen:eh,modal:w,snapPointsOffset:eD,activeSnapPointIndex:eC,direction:j,shouldScaleBackground:s,setBackgroundColorOnScale:u,noBodyStyles:y,container:L,autoFocus:I}},a))}let et=r.default.forwardRef(function({...e},t){let{overlayRef:n,snapPoints:a,onRelease:o,shouldFade:l,isOpen:i,modal:s,shouldAnimate:u}=N(),d=I(t,n),c=a&&a.length>0;if(!s)return null;let f=r.default.useCallback(e=>o(e),[o]);return r.default.createElement(E.Overlay,{onMouseUp:f,ref:d,"data-vaul-overlay":"","data-vaul-snap-points":i&&c?"true":"false","data-vaul-snap-points-overlay":i&&l?"true":"false","data-vaul-animate":(null==u?void 0:u.current)?"true":"false",...e})});et.displayName="Drawer.Overlay";let en=r.default.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:n,...a},o){let{drawerRef:l,onPress:i,onRelease:s,onDrag:u,keyboardIsOpen:d,snapPointsOffset:c,activeSnapPointIndex:f,modal:m,isOpen:p,direction:h,snapPoints:g,container:v,handleOnly:w,shouldAnimate:x,autoFocus:b}=N(),[y,j]=r.default.useState(!1),T=I(o,l),C=r.default.useRef(null),R=r.default.useRef(null),D=r.default.useRef(!1),k=g&&g.length>0;function S(e){C.current=null,D.current=!1,s(e)}return!function(){let{direction:e,isOpen:t,shouldScaleBackground:n,setBackgroundColorOnScale:a,noBodyStyles:o}=N(),l=r.default.useRef(null),i=(0,r.useMemo)(()=>document.body.style.backgroundColor,[]);function s(){return(window.innerWidth-26)/window.innerWidth}r.default.useEffect(()=>{if(t&&n){l.current&&clearTimeout(l.current);let t=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!t)return;!function(...e){}(a&&!o?V(document.body,{background:"black"}):Q,V(t,{transformOrigin:X(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${K.join(",")})`}));let n=V(t,{borderRadius:"8px",overflow:"hidden",...X(e)?{transform:`scale(${s()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${s()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{n(),l.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},500)}}},[t,n,i])}(),r.default.useEffect(()=>{k&&window.requestAnimationFrame(()=>{j(!0)})},[]),r.default.createElement(E.Content,{"data-vaul-drawer-direction":h,"data-vaul-drawer":"","data-vaul-delayed-snap-points":y?"true":"false","data-vaul-snap-points":p&&k?"true":"false","data-vaul-custom-container":v?"true":"false","data-vaul-animate":(null==x?void 0:x.current)?"true":"false",...a,ref:T,style:c&&c.length>0?{"--snap-point-height":`${c[null!=f?f:0]}px`,...t}:t,onPointerDown:e=>{w||(null==a.onPointerDown||a.onPointerDown.call(a,e),C.current={x:e.pageX,y:e.pageY},i(e))},onOpenAutoFocus:e=>{null==n||n(e),b||e.preventDefault()},onPointerDownOutside:t=>{(null==e||e(t),!m||t.defaultPrevented)?t.preventDefault():d.current&&(d.current=!1)},onFocusOutside:e=>{if(!m)return void e.preventDefault()},onPointerMove:e=>{if(R.current=e,w||(null==a.onPointerMove||a.onPointerMove.call(a,e),!C.current))return;let t=e.pageY-C.current.y,n=e.pageX-C.current.x,r="touch"===e.pointerType?10:2;((e,t,n=0)=>{if(D.current)return!0;let r=Math.abs(e.y),a=Math.abs(e.x),o=a>r,l=["bottom","right"].includes(t)?1:-1;if("left"===t||"right"===t){if(!(e.x*l<0)&&a>=0&&a<=n)return o}else if(!(e.y*l<0)&&r>=0&&r<=n)return!o;return D.current=!0,!0})({x:n,y:t},h,r)?u(e):(Math.abs(n)>r||Math.abs(t)>r)&&(C.current=null)},onPointerUp:e=>{null==a.onPointerUp||a.onPointerUp.call(a,e),C.current=null,D.current=!1,s(e)},onPointerOut:e=>{null==a.onPointerOut||a.onPointerOut.call(a,e),S(R.current)},onContextMenu:e=>{null==a.onContextMenu||a.onContextMenu.call(a,e),R.current&&S(R.current)}})});en.displayName="Drawer.Content";let er=r.default.forwardRef(function({preventCycle:e=!1,children:t,...n},a){let{closeDrawer:o,isDragging:l,snapPoints:i,activeSnapPoint:s,setActiveSnapPoint:u,dismissible:d,handleOnly:c,isOpen:f,onPress:m,onDrag:p}=N(),h=r.default.useRef(null),g=r.default.useRef(!1);function v(){h.current&&window.clearTimeout(h.current),g.current=!1}return r.default.createElement("div",{onClick:function(){g.current?v():window.setTimeout(()=>{!function(){if(l||e||g.current)return v();if(v(),!i||0===i.length){d||o();return}if(s===i[i.length-1]&&d)return o();let t=i.findIndex(e=>e===s);-1===t||u(i[t+1])}()},120)},onPointerCancel:v,onPointerDown:e=>{c&&m(e),h.current=window.setTimeout(()=>{g.current=!0},250)},onPointerMove:e=>{c&&p(e)},ref:a,"data-vaul-drawer-visible":f?"true":"false","data-vaul-handle":"","aria-hidden":"true",...n},r.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});er.displayName="Drawer.Handle";let ea={Root:ee,NestedRoot:function({onDrag:e,onOpenChange:t,open:n,...a}){let{onNestedDrag:o,onNestedOpenChange:l,onNestedRelease:i}=N();if(!o)throw Error("Drawer.NestedRoot must be placed in another drawer");return r.default.createElement(ee,{nested:!0,open:n,onClose:()=>{l(!1)},onDrag:(t,n)=>{o(t,n),null==e||e(t,n)},onOpenChange:e=>{e&&l(e),null==t||t(e)},onRelease:i,...a})},Content:en,Overlay:et,Trigger:E.Trigger,Portal:function(e){let t=N(),{container:n=t.container,...a}=e;return r.default.createElement(E.Portal,{container:n,...a})},Handle:er,Close:E.Close,Title:E.Title,Description:E.Description};function eo({...e}){return(0,n.jsx)(ea.Root,{"data-slot":"drawer",...e})}function el({...e}){return(0,n.jsx)(ea.Portal,{"data-slot":"drawer-portal",...e})}function ei({className:e,...t}){return(0,n.jsx)(ea.Overlay,{"data-slot":"drawer-overlay",className:(0,s.cn)("fixed inset-0 z-50 bg-black/50",e),...t})}function es({className:e,children:t,direction:r="bottom",showCloseButton:o=!0,...l}){return(0,n.jsx)(el,{children:(0,n.jsxs)(ea.Content,{"data-slot":"drawer-content",className:(0,s.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===r&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===r&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===r&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===r&&"inset-y-0 left-0 h-full w-3/4 border-r",e),style:{"--initial-transform":"calc(100% + 8px)",userSelect:"text",...l.style??{}},...l,children:[t,o?(0,n.jsxs)(ea.Close,{className:"ring-offset-background focus:ring-ring absolute end-4 top-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,n.jsx)(a.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function eu({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...t})}function ed({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-footer",className:(0,s.cn)("mt-auto flex flex-col gap-2 p-4",e),...t})}function ec({className:e,...t}){return(0,n.jsx)(ea.Title,{"data-slot":"drawer-title",className:(0,s.cn)("text-foreground font-semibold",e),...t})}function ef({className:e,...t}){return(0,n.jsx)(ea.Description,{"data-slot":"drawer-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...t})}e.s(["Drawer",()=>eo,"DrawerContent",()=>es,"DrawerDescription",()=>ef,"DrawerFooter",()=>ed,"DrawerHeader",()=>eu,"DrawerOverlay",()=>ei,"DrawerTitle",()=>ec],45811);var em=e.i(25235);e.i(41001);var ep=e.i(64780),eh=e.i(8537),eg=e.i(75921);let ev=(0,i.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl",lg:"w-[772px]"}},defaultVariants:{size:"sm"}});function ew({open:e,onClose:t,modal:o=!1,dismissOnOutsideClick:l=!1,title:i="Drawer",size:u,header:d,children:c,footer:f,className:m,"data-testid":p,deployTarget:h}){let{i18n:g}=(0,ep.useTranslation)(),v=(0,eg.useFeatureFlags)(),w=(0,r.useRef)(null),x="rtl"===g.dir()?"left":"right";return(0,r.useEffect)(()=>{if(!e||o)return;let n=e=>{let n=e.target;!document.body.contains(n)||w.current?.contains(n)||n.closest(l?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||t()};return document.addEventListener("click",n),()=>document.removeEventListener("click",n)},[e,o,t,l]),(0,n.jsxs)(eo,{direction:x,modal:o,handleOnly:!0,open:e,onOpenChange:e=>{e||t()},children:[o?(0,n.jsx)(ei,{}):null,(0,n.jsxs)(es,{ref:w,direction:x,showCloseButton:!1,className:(0,s.cn)(ev({size:u}),"bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85",m),"data-testid":p,onInteractOutside:o?void 0:e=>e.preventDefault(),children:[(0,n.jsx)(ec,{asChild:!0,children:(0,n.jsx)("span",{className:"sr-only",children:i})}),(0,n.jsx)(ef,{asChild:!0,children:(0,n.jsx)("span",{className:"sr-only",children:i})}),(0,n.jsxs)("button",{type:"button","aria-label":"Close",onClick:t,className:"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":p?`${p}-close-button`:void 0,children:[(0,n.jsx)(a.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}),d?(0,n.jsx)(eu,{className:"shrink-0",children:d}):null,d?(0,n.jsx)(em.Separator,{}):null,v.envDeploy&&h?(0,n.jsx)(ex,{deployTarget:h}):null,(0,n.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:c}),f?(0,n.jsx)(ed,{className:"shrink-0",children:f}):null]})]})}function ex({deployTarget:e}){let t=(0,eh.useDeployAction)(e),r="Booting"===t.status||"Ready"===t.status;return(0,n.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pt-3 pb-3",children:[(0,n.jsx)(v.TooltipProvider,{children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(m,{label:r?"Stop Dev Server":"Start Dev Server",onClick:r?t.stop:t.deploy,loading:t.deployLoading||t.stopLoading,error:!!t.deployError,icon:r?l.Square:o.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,n.jsx)(v.TooltipContent,{children:r?"Stop Dev Server":"Start Dev Server"})]})}),r?(0,n.jsx)(R,{status:t.status,url:t.url,targetId:e.targetId}):null]})}e.s(["BaseDrawer",()=>ew],11495)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,11495,72714,81803,5259,99348,45811,e=>{"use strict";let t;var n=e.i(20314),r=e.i(79054),a=e.i(48249),o=e.i(24042),l=e.i(6910),i=e.i(94237),s=e.i(31777),u=e.i(83428),d=e.i(51251),c=e.i(35364),f=e.i(8361);function m({label:e,onClick:t,loading:r,error:a,icon:o,iconOnly:l=!1,variant:i="outline",size:m="sm"}){let p=(0,f.useSoundAction)("click");return(0,n.jsxs)(c.Button,{variant:i,size:m,"aria-label":e,disabled:r,onClick:()=>{p.play(),t()},className:(0,s.cn)("gap-1.5",a&&"text-destructive hover:text-destructive",!a&&l&&"ghost"===i&&"text-muted-foreground cursor-pointer rounded-full transition-colors hover:text-blue-500"),children:[r?(0,n.jsx)(u.Loader2,{className:"size-4 animate-spin"}):a?(0,n.jsx)(d.CircleAlert,{className:"size-4"}):(0,n.jsx)(o,{className:"size-4"}),l?null:e]})}e.s(["ActionButton",()=>m],72714),e.s([],81803);var p=e.i(30702),h=e.i(38573),g=e.i(17406),v=e.i(2828),w=e.i(2287),x=e.i(21023);let b=(0,x.createServerReference)("402a5f9c99ccbf1d3c0cc441ba92b451798b3f5c40",x.callServer,void 0,x.findSourceMapURL,"getDeploymentLogs");function y({open:e,onOpenChange:t,targetId:a}){let{logs:o,isConnected:l}=function(e){let[t,n]=(0,r.useState)([]),[a,o]=(0,r.useState)(!1),l=(0,r.useRef)(null),i=(0,r.useCallback)(()=>{l.current&&(l.current.close(),l.current=null),o(!1)},[]);return(0,r.useEffect)(()=>{if(!e){n([]),o(!1);return}b(e).then(e=>{e&&n(e)}).catch(()=>{});let t=new EventSource(`/api/deployment-logs?targetId=${e}`);return l.current=t,t.onopen=()=>{o(!0)},t.addEventListener("log",e=>{let t=JSON.parse(e.data);n(e=>[...e,t])}),t.onerror=()=>{o(!1)},()=>{t.close(),l.current=null}},[e,i]),{logs:t,isConnected:a}}(e?a:null);return(0,n.jsx)(j,{open:e,onOpenChange:t,logs:o,isConnected:l})}function j({open:e,onOpenChange:t,logs:a,isConnected:o}){let l=(0,r.useRef)(null),i=(0,r.useRef)(!0),s=(0,r.useCallback)(()=>{let e=l.current;e&&(i.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);return(0,r.useEffect)(()=>{i.current&&l.current&&(l.current.scrollTop=l.current.scrollHeight)},[a]),(0,n.jsx)(w.Dialog,{open:e,onOpenChange:t,children:(0,n.jsxs)(w.DialogContent,{className:"flex h-[calc(100vh-48px)] max-h-[calc(100vh-48px)] w-full max-w-[calc(100vw-48px)] flex-col gap-0 bg-zinc-950 p-0 text-zinc-100 sm:rounded-lg","aria-describedby":void 0,children:[(0,n.jsxs)(w.DialogHeader,{className:"flex flex-row items-center justify-between border-b border-zinc-800 px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(h.Terminal,{className:"h-4 w-4 text-zinc-400"}),(0,n.jsx)(w.DialogTitle,{className:"text-sm font-medium text-zinc-100",children:"Server Logs"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 pe-8",children:[(0,n.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${o?"bg-green-500":"bg-zinc-500"}`}),(0,n.jsx)("span",{className:"text-xs text-zinc-400",children:o?"Connected":"Disconnected"})]})]}),(0,n.jsxs)("div",{ref:l,onScroll:s,className:"flex-1 overflow-auto p-4 font-mono text-sm leading-relaxed",children:[0===a.length?(0,n.jsx)("p",{className:"text-zinc-500",children:"Waiting for log output..."}):a.map(e=>(0,n.jsx)(T,{entry:e},`${e.timestamp}-${e.stream}-${e.line}`)),!o&&a.length>0&&(0,n.jsx)("div",{className:"mt-2 border-t border-zinc-800 pt-2 text-zinc-500",children:"[Server stopped]"})]})]})})}function T({entry:e}){return(0,n.jsx)("div",{"data-stream":e.stream,className:"stderr"===e.stream?"text-red-400":"text-zinc-200",children:(0,n.jsx)("span",{className:"break-all whitespace-pre-wrap",children:e.line})})}let C="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-7 items-center justify-center rounded-[3px]";function R({status:e,url:t,targetId:a}){let[o,l]=(0,r.useState)(!1),i=a&&(e===g.DeploymentState.Booting||e===g.DeploymentState.Ready);switch(e){case g.DeploymentState.Booting:return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 pl-1",children:[(0,n.jsx)(u.Loader2,{className:"size-3 animate-spin text-blue-500"}),(0,n.jsx)("span",{className:"text-muted-foreground text-[11px]",children:"Starting..."}),i?(0,n.jsx)(v.TooltipProvider,{delayDuration:300,children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("button",{type:"button","aria-label":"View server logs",className:C,onClick:e=>{e.stopPropagation(),l(!0)},children:(0,n.jsx)(h.Terminal,{className:"size-3.5"})})}),(0,n.jsx)(v.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),i?(0,n.jsx)(y,{open:o,onOpenChange:l,targetId:a}):null]});case g.DeploymentState.Ready:return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"flex translate-y-px items-center gap-1 pl-1",children:[(0,n.jsx)("span",{className:"inline-block size-1.5 rounded-full bg-green-500"}),t?(0,n.jsxs)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 text-[11px] text-green-600 hover:text-green-500 dark:text-green-400 dark:hover:text-green-300",onClick:e=>e.stopPropagation(),children:[t,(0,n.jsx)(p.ExternalLink,{className:"size-2.5 shrink-0"})]}):(0,n.jsx)("span",{className:"text-[11px] text-green-600 dark:text-green-400",children:"Ready"}),i?(0,n.jsx)(v.TooltipProvider,{delayDuration:300,children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("button",{type:"button","aria-label":"View server logs",className:C,onClick:e=>{e.stopPropagation(),l(!0)},children:(0,n.jsx)(h.Terminal,{className:"size-3.5"})})}),(0,n.jsx)(v.TooltipContent,{side:"bottom",className:"text-xs",children:"Server logs"})]})}):null]}),i?(0,n.jsx)(y,{open:o,onOpenChange:l,targetId:a}):null]});default:return null}}e.s(["DeploymentStatusBadge",()=>R],5259),e.s([],99348);var E=e.i(567);let D=r.default.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),N=()=>{let e=r.default.useContext(D);if(!e)throw Error("useDrawerContext must be used within a Drawer.Root");return e};function k(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function S(){return $(/^iPhone/)||$(/^iPad/)||$(/^Mac/)&&navigator.maxTouchPoints>1}function $(e){return"u">typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let P="u">typeof window?r.useLayoutEffect:r.useEffect;function z(...e){return(...t)=>{for(let n of e)"function"==typeof n&&n(...t)}}let M="u">typeof document&&window.visualViewport;function O(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function B(e){for(O(e)&&(e=e.parentElement);e&&!O(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}let L=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),F=0;function H(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function A(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let t=B(e);if(t!==document.documentElement&&t!==document.body&&t!==e){let n=t.getBoundingClientRect().top,r=e.getBoundingClientRect().top;e.getBoundingClientRect().bottom>t.getBoundingClientRect().bottom+24&&(t.scrollTop+=r-n)}e=t.parentElement}}function W(e){return e instanceof HTMLInputElement&&!L.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function I(...e){return r.useCallback(function(...e){return t=>e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}(...e),e)}let q=new WeakMap;function Y(e,t,n=!1){if(!e||!(e instanceof HTMLElement))return;let r={};Object.entries(t).forEach(([t,n])=>{t.startsWith("--")?e.style.setProperty(t,n):(r[t]=e.style[t],e.style[t]=n)}),n||q.set(e,r)}let X=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function U(e,t){if(!e)return null;let n=window.getComputedStyle(e),r=n.transform||n.webkitTransform||n.mozTransform,a=r.match(/^matrix3d\((.+)\)$/);return a?parseFloat(a[1].split(", ")[X(t)?13:12]):(a=r.match(/^matrix\((.+)\)$/))?parseFloat(a[1].split(", ")[X(t)?5:4]):null}function V(e,t){if(!e)return()=>{};let n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}let K=[.32,.72,0,1],J="vaul-dragging";function _(e){let t=r.default.useRef(e);return r.default.useEffect(()=>{t.current=e}),r.default.useMemo(()=>(...e)=>null==t.current?void 0:t.current.call(t,...e),[])}function G({prop:e,defaultProp:t,onChange:n=()=>{}}){let[a,o]=function({defaultProp:e,onChange:t}){let n=r.default.useState(e),[a]=n,o=r.default.useRef(a),l=_(t);return r.default.useEffect(()=>{o.current!==a&&(l(a),o.current=a)},[a,o,l]),n}({defaultProp:t,onChange:n}),l=void 0!==e,i=l?e:a,s=_(n);return[i,r.default.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&s(n)}else o(t)},[l,e,o,s])]}let Q=()=>()=>{},Z=null;function ee({open:e,onOpenChange:n,children:a,onDrag:o,onRelease:l,snapPoints:i,shouldScaleBackground:s=!1,setBackgroundColorOnScale:u=!0,closeThreshold:d=.25,scrollLockTimeout:c=100,dismissible:f=!0,handleOnly:m=!1,fadeFromIndex:p=i&&i.length-1,activeSnapPoint:h,setActiveSnapPoint:g,fixed:v,modal:w=!0,onClose:x,nested:b,noBodyStyles:y=!1,direction:j="bottom",defaultOpen:T=!1,disablePreventScroll:C=!0,snapToSequentialPoint:R=!1,preventScrollRestoration:N=!1,repositionInputs:$=!0,onAnimationEnd:O,container:L,autoFocus:I=!1}){var V,_;let[Q=!1,ee]=G({defaultProp:T,prop:e,onChange:e=>{null==n||n(e),e||b||e$(),setTimeout(()=>{null==O||O(e)},500),e&&!w&&"u">typeof window&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),e||(document.body.style.pointerEvents="auto")}}),[et,en]=r.default.useState(!1),[er,ea]=r.default.useState(!1),[eo,el]=r.default.useState(!1),ei=r.default.useRef(null),es=r.default.useRef(null),eu=r.default.useRef(null),ed=r.default.useRef(null),ec=r.default.useRef(null),ef=r.default.useRef(!1),em=r.default.useRef(null),ep=r.default.useRef(0),eh=r.default.useRef(!1),eg=r.default.useRef(!T),ev=r.default.useRef(0),ew=r.default.useRef(null),ex=r.default.useRef((null==(V=ew.current)?void 0:V.getBoundingClientRect().height)||0),eb=r.default.useRef((null==(_=ew.current)?void 0:_.getBoundingClientRect().width)||0),ey=r.default.useRef(0),ej=r.default.useCallback(e=>{i&&e===eD.length-1&&(es.current=new Date)},[]),{activeSnapPoint:eT,activeSnapPointIndex:eC,setActiveSnapPoint:eR,onRelease:eE,snapPointsOffset:eD,onDrag:eN,shouldFade:ek,getPercentageDragged:eS}=function({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:n,drawerRef:a,overlayRef:o,fadeFromIndex:l,onSnapPointChange:i,direction:s="bottom",container:u,snapToSequentialPoint:d}){let[c,f]=G({prop:e,defaultProp:null==n?void 0:n[0],onChange:t}),[m,p]=r.default.useState("u">typeof window?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);r.default.useEffect(()=>{function e(){p({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let h=r.default.useMemo(()=>c===(null==n?void 0:n[n.length-1])||null,[n,c]),g=r.default.useMemo(()=>{var e;return null!=(e=null==n?void 0:n.findIndex(e=>e===c))?e:null},[n,c]),v=n&&n.length>0&&(l||0===l)&&!Number.isNaN(l)&&n[l]===c||!n,w=r.default.useMemo(()=>{var e;let t=u?{width:u.getBoundingClientRect().width,height:u.getBoundingClientRect().height}:"u">typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};return null!=(e=null==n?void 0:n.map(e=>{let n="string"==typeof e,r=0;if(n&&(r=parseInt(e,10)),X(s)){let a=n?r:m?e*t.height:0;return m?"bottom"===s?t.height-a:-t.height+a:a}let a=n?r:m?e*t.width:0;return m?"right"===s?t.width-a:-t.width+a:a}))?e:[]},[n,m,u]),x=r.default.useMemo(()=>null!==g?null==w?void 0:w[g]:null,[w,g]),b=r.default.useCallback(e=>{var t;let r=null!=(t=null==w?void 0:w.findIndex(t=>t===e))?t:null;i(r),Y(a.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(s)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`}),w&&r!==w.length-1&&void 0!==l&&r!==l&&r<l?Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"0"}):Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"1"}),f(null==n?void 0:n[Math.max(r,0)])},[a.current,n,w,l,o,f]);return r.default.useEffect(()=>{if(c||e){var t;let r=null!=(t=null==n?void 0:n.findIndex(t=>t===e||t===c))?t:-1;w&&-1!==r&&"number"==typeof w[r]&&b(w[r])}},[c,e,n,w,b]),{isLastSnapPoint:h,activeSnapPoint:c,shouldFade:v,getPercentageDragged:function(e,t){if(!n||"number"!=typeof g||!w||void 0===l)return null;let r=g===l-1;if(g>=l&&t)return 0;if(r&&!t)return 1;if(!v&&!r)return null;let a=r?g+1:g-1,o=e/Math.abs(r?w[a]-w[a-1]:w[a+1]-w[a]);return r?1-o:o},setActiveSnapPoint:f,activeSnapPointIndex:g,onRelease:function({draggedDistance:e,closeDrawer:t,velocity:r,dismissible:a}){if(void 0===l)return;let i="bottom"===s||"right"===s?(null!=x?x:0)-e:(null!=x?x:0)+e,u=g===l-1,c=0===g,f=e>0;if(u&&Y(o.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`}),!d&&r>2&&!f)return void(a?t():b(w[0]));if(!d&&r>2&&f&&w&&n)return void b(w[n.length-1]);let m=null==w?void 0:w.reduce((e,t)=>"number"!=typeof e||"number"!=typeof t?e:Math.abs(t-i)<Math.abs(e-i)?t:e),p=X(s)?window.innerHeight:window.innerWidth;if(r>.4&&Math.abs(e)<.4*p){let e=f?1:-1;return e>0&&h&&n?void b(w[n.length-1]):void(c&&e<0&&a&&t(),null===g||b(w[g+e]))}b(m)},onDrag:function({draggedDistance:e}){if(null===x)return;let t="bottom"===s||"right"===s?x-e:x+e;("bottom"===s||"right"===s)&&t<w[w.length-1]||("top"===s||"left"===s)&&t>w[w.length-1]||Y(a.current,{transform:X(s)?`translate3d(0, ${t}px, 0)`:`translate3d(${t}px, 0, 0)`})},snapPointsOffset:w}}({snapPoints:i,activeSnapPointProp:h,setActiveSnapPointProp:g,drawerRef:ew,fadeFromIndex:p,overlayRef:ei,onSnapPointChange:ej,direction:j,container:L,snapToSequentialPoint:R});!function(e={}){let{isDisabled:n}=e;P(()=>{if(!n){var e,r,a;let n,o,l,i,s,u,d;return 1==++F&&S()&&(l=0,i=window.pageXOffset,s=window.pageYOffset,u=z((e=document.documentElement,r="paddingRight",a=`${window.innerWidth-document.documentElement.clientWidth}px`,n=e.style[r],e.style[r]=a,()=>{e.style[r]=n})),window.scrollTo(0,0),d=z(H(document,"touchstart",e=>{((o=B(e.target))!==document.documentElement||o!==document.body)&&(l=e.changedTouches[0].pageY)},{passive:!1,capture:!0}),H(document,"touchmove",e=>{if(!o||o===document.documentElement||o===document.body)return void e.preventDefault();let t=e.changedTouches[0].pageY,n=o.scrollTop,r=o.scrollHeight-o.clientHeight;0!==r&&((n<=0&&t>l||n>=r&&t<l)&&e.preventDefault(),l=t)},{passive:!1,capture:!0}),H(document,"touchend",e=>{let t=e.target;W(t)&&t!==document.activeElement&&(e.preventDefault(),t.style.transform="translateY(-2000px)",t.focus(),requestAnimationFrame(()=>{t.style.transform=""}))},{passive:!1,capture:!0}),H(document,"focus",e=>{let t=e.target;W(t)&&(t.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{t.style.transform="",M&&(M.height<window.innerHeight?requestAnimationFrame(()=>{A(t)}):M.addEventListener("resize",()=>A(t),{once:!0}))}))},!0),H(window,"scroll",()=>{window.scrollTo(0,0)})),t=()=>{u(),d(),window.scrollTo(i,s)}),()=>{0==--F&&(null==t||t())}}},[n])}({isDisabled:!Q||er||!w||eo||!et||!$||!C});let{restorePositionSetting:e$}=function({isOpen:e,modal:t,nested:n,hasBeenOpened:a,preventScrollRestoration:o,noBodyStyles:l}){let[i,s]=r.default.useState(()=>"u">typeof window?window.location.href:""),u=r.default.useRef(0),d=r.default.useCallback(()=>{if(k()&&null===Z&&e&&!l){Z={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:e,innerHeight:t}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-u.current}px`,left:`${-e}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let e=t-window.innerHeight;e&&u.current>=t&&(document.body.style.top=`${-(u.current+e)}px`)}),300)}},[e]),c=r.default.useCallback(()=>{if(k()&&null!==Z&&!l){let e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);Object.assign(document.body.style,Z),window.requestAnimationFrame(()=>{o&&i!==window.location.href?s(window.location.href):window.scrollTo(t,e)}),Z=null}},[i]);return r.default.useEffect(()=>{function e(){u.current=window.scrollY}return e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),r.default.useEffect(()=>{if(t)return()=>{"u"<typeof document||document.querySelector("[data-vaul-drawer]")||c()}},[t,c]),r.default.useEffect(()=>{!n&&a&&(e?(window.matchMedia("(display-mode: standalone)").matches||d(),t||window.setTimeout(()=>{c()},500)):c())},[e,a,i,t,n,d,c]),{restorePositionSetting:c}}({isOpen:Q,modal:w,nested:null!=b&&b,hasBeenOpened:et,preventScrollRestoration:N,noBodyStyles:y});function eP(){return(window.innerWidth-26)/window.innerWidth}function ez(e,t){var n;let r=e,a=null==(n=window.getSelection())?void 0:n.toString(),o=ew.current?U(ew.current,j):null,l=new Date;if("SELECT"===r.tagName||r.hasAttribute("data-vaul-no-drag")||r.closest("[data-vaul-no-drag]"))return!1;if("right"===j||"left"===j)return!0;if(es.current&&l.getTime()-es.current.getTime()<500)return!1;if(null!==o&&("bottom"===j?o>0:o<0))return!0;if(a&&a.length>0)return!1;if(ec.current&&l.getTime()-ec.current.getTime()<c&&0===o||t)return ec.current=l,!1;for(;r;){if(r.scrollHeight>r.clientHeight){if(0!==r.scrollTop)return ec.current=new Date,!1;if("dialog"===r.getAttribute("role"))break}r=r.parentNode}return!0}function eM(e){er&&ew.current&&(ew.current.classList.remove(J),ef.current=!1,ea(!1),ed.current=new Date),null==x||x(),e||ee(!1),setTimeout(()=>{i&&eR(i[0])},500)}function eO(){if(!ew.current)return;let e=document.querySelector("[data-vaul-drawer-wrapper]"),t=U(ew.current,j);Y(ew.current,{transform:"translate3d(0, 0, 0)",transition:`transform 0.5s cubic-bezier(${K.join(",")})`}),Y(ei.current,{transition:`opacity 0.5s cubic-bezier(${K.join(",")})`,opacity:"1"}),s&&t&&t>0&&Q&&Y(e,{borderRadius:"8px",overflow:"hidden",...X(j)?{transform:`scale(${eP()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${eP()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${K.join(",")})`},!0)}return r.default.useEffect(()=>{window.requestAnimationFrame(()=>{eg.current=!0})},[]),r.default.useEffect(()=>{var e;function t(){if(ew.current&&$&&(W(document.activeElement)||eh.current)){var e;let t=(null==(e=window.visualViewport)?void 0:e.height)||0,n=window.innerHeight,r=n-t,a=ew.current.getBoundingClientRect().height||0;ey.current||(ey.current=a);let o=ew.current.getBoundingClientRect().top;if(Math.abs(ev.current-r)>60&&(eh.current=!eh.current),i&&i.length>0&&eD&&eC&&(r+=eD[eC]||0),ev.current=r,a>t||eh.current){let e=ew.current.getBoundingClientRect().height,l=e;e>t&&(l=t-(a>.8*n?o:26)),v?ew.current.style.height=`${e-Math.max(r,0)}px`:ew.current.style.height=`${Math.max(l,t-o)}px`}else{let e;e=navigator.userAgent,"u">typeof window&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))||(ew.current.style.height=`${ey.current}px`)}i&&i.length>0&&!eh.current?ew.current.style.bottom="0px":ew.current.style.bottom=`${Math.max(r,0)}px`}}return null==(e=window.visualViewport)||e.addEventListener("resize",t),()=>{var e;return null==(e=window.visualViewport)?void 0:e.removeEventListener("resize",t)}},[eC,i,eD]),r.default.useEffect(()=>(Q&&(Y(document.documentElement,{scrollBehavior:"auto"}),es.current=new Date),()=>{!function(e,t){if(!e||!(e instanceof HTMLElement))return;let n=q.get(e);n&&(e.style[t]=n[t])}(document.documentElement,"scrollBehavior")}),[Q]),r.default.useEffect(()=>{w||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[w]),r.default.createElement(E.Root,{defaultOpen:T,onOpenChange:e=>{(f||e)&&(e?en(!0):eM(!0),ee(e))},open:Q},r.default.createElement(D.Provider,{value:{activeSnapPoint:eT,snapPoints:i,setActiveSnapPoint:eR,drawerRef:ew,overlayRef:ei,onOpenChange:n,onPress:function(e){var t,n;!f&&!i||(!ew.current||ew.current.contains(e.target))&&(ex.current=(null==(t=ew.current)?void 0:t.getBoundingClientRect().height)||0,eb.current=(null==(n=ew.current)?void 0:n.getBoundingClientRect().width)||0,ea(!0),eu.current=new Date,S()&&window.addEventListener("touchend",()=>ef.current=!1,{once:!0}),e.target.setPointerCapture(e.pointerId),ep.current=X(j)?e.pageY:e.pageX)},onRelease:function(e){var t,n;if(!er||!ew.current)return;ew.current.classList.remove(J),ef.current=!1,ea(!1),ed.current=new Date;let r=U(ew.current,j);if(!e||!ez(e.target,!1)||!r||Number.isNaN(r)||null===eu.current)return;let a=ed.current.getTime()-eu.current.getTime(),o=ep.current-(X(j)?e.pageY:e.pageX),s=Math.abs(o)/a;if(s>.05&&(el(!0),setTimeout(()=>{el(!1)},200)),i){eE({draggedDistance:o*("bottom"===j||"right"===j?1:-1),closeDrawer:eM,velocity:s,dismissible:f}),null==l||l(e,!0);return}if("bottom"===j||"right"===j?o>0:o<0){eO(),null==l||l(e,!0);return}if(s>.4){eM(),null==l||l(e,!1);return}let u=Math.min(null!=(t=ew.current.getBoundingClientRect().height)?t:0,window.innerHeight),c=Math.min(null!=(n=ew.current.getBoundingClientRect().width)?n:0,window.innerWidth);if(Math.abs(r)>=("left"===j||"right"===j?c:u)*d){eM(),null==l||l(e,!1);return}null==l||l(e,!0),eO()},onDrag:function(e){if(ew.current&&er){let t="bottom"===j||"right"===j?1:-1,n=(ep.current-(X(j)?e.pageY:e.pageX))*t,r=n>0,a=i&&!f&&!r;if(a&&0===eC)return;let l=Math.abs(n),u=document.querySelector("[data-vaul-drawer-wrapper]"),d=l/("bottom"===j||"top"===j?ex.current:eb.current),c=eS(l,r);if(null!==c&&(d=c),a&&d>=1||!ef.current&&!ez(e.target,r))return;if(ew.current.classList.add(J),ef.current=!0,Y(ew.current,{transition:"none"}),Y(ei.current,{transition:"none"}),i&&eN({draggedDistance:n}),r&&!i){let e=Math.min(-(8*(Math.log(n+1)-2)*1),0)*t;Y(ew.current,{transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`});return}let m=1-d;if((ek||p&&eC===p-1)&&(null==o||o(e,d),Y(ei.current,{opacity:`${m}`,transition:"none"},!0)),u&&ei.current&&s){let e=Math.min(eP()+d*(1-eP()),1),t=8-8*d,n=Math.max(0,14-14*d);Y(u,{borderRadius:`${t}px`,transform:X(j)?`scale(${e}) translate3d(0, ${n}px, 0)`:`scale(${e}) translate3d(${n}px, 0, 0)`,transition:"none"},!0)}if(!i){let e=l*t;Y(ew.current,{transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})}}},dismissible:f,shouldAnimate:eg,handleOnly:m,isOpen:Q,isDragging:er,shouldFade:ek,closeDrawer:eM,onNestedDrag:function(e,t){if(t<0)return;let n=(window.innerWidth-16)/window.innerWidth,r=n+t*(1-n),a=-16+16*t;Y(ew.current,{transform:X(j)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`,transition:"none"})},onNestedOpenChange:function(e){let t=e?(window.innerWidth-16)/window.innerWidth:1,n=e?-16:0;em.current&&window.clearTimeout(em.current),Y(ew.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(j)?`scale(${t}) translate3d(0, ${n}px, 0)`:`scale(${t}) translate3d(${n}px, 0, 0)`}),!e&&ew.current&&(em.current=setTimeout(()=>{let e=U(ew.current,j);Y(ew.current,{transition:"none",transform:X(j)?`translate3d(0, ${e}px, 0)`:`translate3d(${e}px, 0, 0)`})},500))},onNestedRelease:function(e,t){let n=X(j)?window.innerHeight:window.innerWidth,r=t?(n-16)/n:1,a=t?-16:0;t&&Y(ew.current,{transition:`transform 0.5s cubic-bezier(${K.join(",")})`,transform:X(j)?`scale(${r}) translate3d(0, ${a}px, 0)`:`scale(${r}) translate3d(${a}px, 0, 0)`})},keyboardIsOpen:eh,modal:w,snapPointsOffset:eD,activeSnapPointIndex:eC,direction:j,shouldScaleBackground:s,setBackgroundColorOnScale:u,noBodyStyles:y,container:L,autoFocus:I}},a))}let et=r.default.forwardRef(function({...e},t){let{overlayRef:n,snapPoints:a,onRelease:o,shouldFade:l,isOpen:i,modal:s,shouldAnimate:u}=N(),d=I(t,n),c=a&&a.length>0;if(!s)return null;let f=r.default.useCallback(e=>o(e),[o]);return r.default.createElement(E.Overlay,{onMouseUp:f,ref:d,"data-vaul-overlay":"","data-vaul-snap-points":i&&c?"true":"false","data-vaul-snap-points-overlay":i&&l?"true":"false","data-vaul-animate":(null==u?void 0:u.current)?"true":"false",...e})});et.displayName="Drawer.Overlay";let en=r.default.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:n,...a},o){let{drawerRef:l,onPress:i,onRelease:s,onDrag:u,keyboardIsOpen:d,snapPointsOffset:c,activeSnapPointIndex:f,modal:m,isOpen:p,direction:h,snapPoints:g,container:v,handleOnly:w,shouldAnimate:x,autoFocus:b}=N(),[y,j]=r.default.useState(!1),T=I(o,l),C=r.default.useRef(null),R=r.default.useRef(null),D=r.default.useRef(!1),k=g&&g.length>0;function S(e){C.current=null,D.current=!1,s(e)}return!function(){let{direction:e,isOpen:t,shouldScaleBackground:n,setBackgroundColorOnScale:a,noBodyStyles:o}=N(),l=r.default.useRef(null),i=(0,r.useMemo)(()=>document.body.style.backgroundColor,[]);function s(){return(window.innerWidth-26)/window.innerWidth}r.default.useEffect(()=>{if(t&&n){l.current&&clearTimeout(l.current);let t=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!t)return;!function(...e){}(a&&!o?V(document.body,{background:"black"}):Q,V(t,{transformOrigin:X(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:"0.5s",transitionTimingFunction:`cubic-bezier(${K.join(",")})`}));let n=V(t,{borderRadius:"8px",overflow:"hidden",...X(e)?{transform:`scale(${s()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${s()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{n(),l.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},500)}}},[t,n,i])}(),r.default.useEffect(()=>{k&&window.requestAnimationFrame(()=>{j(!0)})},[]),r.default.createElement(E.Content,{"data-vaul-drawer-direction":h,"data-vaul-drawer":"","data-vaul-delayed-snap-points":y?"true":"false","data-vaul-snap-points":p&&k?"true":"false","data-vaul-custom-container":v?"true":"false","data-vaul-animate":(null==x?void 0:x.current)?"true":"false",...a,ref:T,style:c&&c.length>0?{"--snap-point-height":`${c[null!=f?f:0]}px`,...t}:t,onPointerDown:e=>{w||(null==a.onPointerDown||a.onPointerDown.call(a,e),C.current={x:e.pageX,y:e.pageY},i(e))},onOpenAutoFocus:e=>{null==n||n(e),b||e.preventDefault()},onPointerDownOutside:t=>{(null==e||e(t),!m||t.defaultPrevented)?t.preventDefault():d.current&&(d.current=!1)},onFocusOutside:e=>{if(!m)return void e.preventDefault()},onPointerMove:e=>{if(R.current=e,w||(null==a.onPointerMove||a.onPointerMove.call(a,e),!C.current))return;let t=e.pageY-C.current.y,n=e.pageX-C.current.x,r="touch"===e.pointerType?10:2;((e,t,n=0)=>{if(D.current)return!0;let r=Math.abs(e.y),a=Math.abs(e.x),o=a>r,l=["bottom","right"].includes(t)?1:-1;if("left"===t||"right"===t){if(!(e.x*l<0)&&a>=0&&a<=n)return o}else if(!(e.y*l<0)&&r>=0&&r<=n)return!o;return D.current=!0,!0})({x:n,y:t},h,r)?u(e):(Math.abs(n)>r||Math.abs(t)>r)&&(C.current=null)},onPointerUp:e=>{null==a.onPointerUp||a.onPointerUp.call(a,e),C.current=null,D.current=!1,s(e)},onPointerOut:e=>{null==a.onPointerOut||a.onPointerOut.call(a,e),S(R.current)},onContextMenu:e=>{null==a.onContextMenu||a.onContextMenu.call(a,e),R.current&&S(R.current)}})});en.displayName="Drawer.Content";let er=r.default.forwardRef(function({preventCycle:e=!1,children:t,...n},a){let{closeDrawer:o,isDragging:l,snapPoints:i,activeSnapPoint:s,setActiveSnapPoint:u,dismissible:d,handleOnly:c,isOpen:f,onPress:m,onDrag:p}=N(),h=r.default.useRef(null),g=r.default.useRef(!1);function v(){h.current&&window.clearTimeout(h.current),g.current=!1}return r.default.createElement("div",{onClick:function(){g.current?v():window.setTimeout(()=>{!function(){if(l||e||g.current)return v();if(v(),!i||0===i.length){d||o();return}if(s===i[i.length-1]&&d)return o();let t=i.findIndex(e=>e===s);-1===t||u(i[t+1])}()},120)},onPointerCancel:v,onPointerDown:e=>{c&&m(e),h.current=window.setTimeout(()=>{g.current=!0},250)},onPointerMove:e=>{c&&p(e)},ref:a,"data-vaul-drawer-visible":f?"true":"false","data-vaul-handle":"","aria-hidden":"true",...n},r.default.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});er.displayName="Drawer.Handle";let ea={Root:ee,NestedRoot:function({onDrag:e,onOpenChange:t,open:n,...a}){let{onNestedDrag:o,onNestedOpenChange:l,onNestedRelease:i}=N();if(!o)throw Error("Drawer.NestedRoot must be placed in another drawer");return r.default.createElement(ee,{nested:!0,open:n,onClose:()=>{l(!1)},onDrag:(t,n)=>{o(t,n),null==e||e(t,n)},onOpenChange:e=>{e&&l(e),null==t||t(e)},onRelease:i,...a})},Content:en,Overlay:et,Trigger:E.Trigger,Portal:function(e){let t=N(),{container:n=t.container,...a}=e;return r.default.createElement(E.Portal,{container:n,...a})},Handle:er,Close:E.Close,Title:E.Title,Description:E.Description};function eo({...e}){return(0,n.jsx)(ea.Root,{"data-slot":"drawer",...e})}function el({...e}){return(0,n.jsx)(ea.Portal,{"data-slot":"drawer-portal",...e})}function ei({className:e,...t}){return(0,n.jsx)(ea.Overlay,{"data-slot":"drawer-overlay",className:(0,s.cn)("fixed inset-0 z-50 bg-black/50",e),...t})}function es({className:e,children:t,direction:r="bottom",showCloseButton:o=!0,...l}){return(0,n.jsx)(el,{children:(0,n.jsxs)(ea.Content,{"data-slot":"drawer-content",className:(0,s.cn)("bg-background fixed z-50 flex flex-col shadow-lg","bottom"===r&&"inset-x-0 bottom-0 mb-24 rounded-t-lg border-t","top"===r&&"inset-x-0 top-0 mt-24 rounded-b-lg border-b","right"===r&&"inset-y-0 right-0 h-full w-3/4 border-l","left"===r&&"inset-y-0 left-0 h-full w-3/4 border-r",e),style:{"--initial-transform":"calc(100% + 8px)",userSelect:"text",...l.style??{}},...l,children:[t,o?(0,n.jsxs)(ea.Close,{className:"ring-offset-background focus:ring-ring absolute end-4 top-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,n.jsx)(a.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})})}function eu({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-header",className:(0,s.cn)("flex flex-col gap-1.5 p-4",e),...t})}function ed({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"drawer-footer",className:(0,s.cn)("mt-auto flex flex-col gap-2 p-4",e),...t})}function ec({className:e,...t}){return(0,n.jsx)(ea.Title,{"data-slot":"drawer-title",className:(0,s.cn)("text-foreground font-semibold",e),...t})}function ef({className:e,...t}){return(0,n.jsx)(ea.Description,{"data-slot":"drawer-description",className:(0,s.cn)("text-muted-foreground text-sm",e),...t})}e.s(["Drawer",()=>eo,"DrawerContent",()=>es,"DrawerDescription",()=>ef,"DrawerFooter",()=>ed,"DrawerHeader",()=>eu,"DrawerOverlay",()=>ei,"DrawerTitle",()=>ec],45811);var em=e.i(25235);e.i(41001);var ep=e.i(64780),eh=e.i(8537),eg=e.i(75921);let ev=(0,i.cva)("",{variants:{size:{sm:"w-96",md:"w-2xl",lg:"w-[772px]"}},defaultVariants:{size:"sm"}});function ew({open:e,onClose:t,modal:o=!1,dismissOnOutsideClick:l=!1,title:i="Drawer",size:u,header:d,children:c,footer:f,className:m,"data-testid":p,deployTarget:h}){let{i18n:g}=(0,ep.useTranslation)(),v=(0,eg.useFeatureFlags)(),w=(0,r.useRef)(null),x="rtl"===g.dir()?"left":"right";return(0,r.useEffect)(()=>{if(!e||o)return;let n=e=>{let n=e.target;!document.body.contains(n)||w.current?.contains(n)||n.closest(l?'[role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]':'[data-no-drawer-close], [role="alertdialog"], [role="dialog"], [role="menu"], [role="listbox"], [data-radix-popper-content-wrapper]')||t()};return document.addEventListener("click",n),()=>document.removeEventListener("click",n)},[e,o,t,l]),(0,n.jsxs)(eo,{direction:x,modal:o,handleOnly:!0,open:e,onOpenChange:e=>{e||t()},children:[o?(0,n.jsx)(ei,{}):null,(0,n.jsxs)(es,{ref:w,direction:x,showCloseButton:!1,className:(0,s.cn)(ev({size:u}),"bg-white/85 backdrop-blur-xl dark:bg-neutral-800/85",m),"data-testid":p,onInteractOutside:o?void 0:e=>e.preventDefault(),children:[(0,n.jsx)(ec,{asChild:!0,children:(0,n.jsx)("span",{className:"sr-only",children:i})}),(0,n.jsx)(ef,{asChild:!0,children:(0,n.jsx)("span",{className:"sr-only",children:i})}),(0,n.jsxs)("button",{type:"button","aria-label":"Close",onClick:t,className:"ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden","data-testid":p?`${p}-close-button`:void 0,children:[(0,n.jsx)(a.XIcon,{className:"size-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}),d?(0,n.jsx)(eu,{className:"shrink-0",children:d}):null,d?(0,n.jsx)(em.Separator,{}):null,v.envDeploy&&h?(0,n.jsx)(ex,{deployTarget:h}):null,(0,n.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:c}),f?(0,n.jsx)(ed,{className:"shrink-0",children:f}):null]})]})}function ex({deployTarget:e}){let t=(0,eh.useDeployAction)(e),r="Booting"===t.status||"Ready"===t.status;return(0,n.jsxs)("div",{"data-testid":"base-drawer-deploy-bar",className:"flex items-center gap-2 px-4 pt-3 pb-3",children:[(0,n.jsx)(v.TooltipProvider,{children:(0,n.jsxs)(v.Tooltip,{children:[(0,n.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{children:(0,n.jsx)(m,{label:r?"Stop Dev Server":"Start Dev Server",onClick:r?t.stop:t.deploy,loading:t.deployLoading||t.stopLoading,error:!!t.deployError,icon:r?l.Square:o.Play,iconOnly:!0,variant:"outline",size:"icon-sm"})})}),(0,n.jsx)(v.TooltipContent,{children:r?"Stop Dev Server":"Start Dev Server"})]})}),r?(0,n.jsx)(R,{status:t.status,url:t.url,targetId:e.targetId}):null]})}e.s(["BaseDrawer",()=>ew],11495)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},10714,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},74294,58860,44229,e=>{"use strict";var t=e.i(3645);let a=(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",()=>a],74294);let i=(0,t.default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);e.s(["Timer",()=>i],58860);var r=e.i(93752);e.s(["Code",()=>r.default],44229)},34808,e=>{"use strict";var t=e.i(10714);e.s(["Minus",()=>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)},51911,e=>{"use strict";var t=e.i(20314),a=e.i(79054),i=e.i(91967),r=e.i(5978),s=e.i(22528),c=e.i(36589),d=e.i(23405),n=e.i(77624),l=e.i(87620),o="Switch",[u,h]=(0,s.createContextScope)(o),[p,f]=u(o),k=a.forwardRef((e,s)=>{let{__scopeSwitch:d,name:n,checked:u,defaultChecked:h,required:f,disabled:k,value:y="on",onCheckedChange:m,form:g,...v}=e,[w,z]=a.useState(null),S=(0,r.useComposedRefs)(s,e=>z(e)),M=a.useRef(!1),R=!w||g||!!w.closest("form"),[C,T]=(0,c.useControllableState)({prop:u,defaultProp:h??!1,onChange:m,caller:o});return(0,t.jsxs)(p,{scope:d,checked:C,disabled:k,children:[(0,t.jsx)(l.Primitive.button,{type:"button",role:"switch","aria-checked":C,"aria-required":f,"data-state":x(C),"data-disabled":k?"":void 0,disabled:k,value:y,...v,ref:S,onClick:(0,i.composeEventHandlers)(e.onClick,e=>{T(e=>!e),R&&(M.current=e.isPropagationStopped(),M.current||e.stopPropagation())})}),R&&(0,t.jsx)(b,{control:w,bubbles:!M.current,name:n,value:y,checked:C,required:f,disabled:k,form:g,style:{transform:"translateX(-100%)"}})]})});k.displayName=o;var y="SwitchThumb",m=a.forwardRef((e,a)=>{let{__scopeSwitch:i,...r}=e,s=f(y,i);return(0,t.jsx)(l.Primitive.span,{"data-state":x(s.checked),"data-disabled":s.disabled?"":void 0,...r,ref:a})});m.displayName=y;var b=a.forwardRef(({__scopeSwitch:e,control:i,checked:s,bubbles:c=!0,...l},o)=>{let u=a.useRef(null),h=(0,r.useComposedRefs)(u,o),p=(0,d.usePrevious)(s),f=(0,n.useSize)(i);return a.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(p!==s&&t){let a=new Event("click",{bubbles:c});t.call(e,s),e.dispatchEvent(a)}},[p,s,c]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:s,...l,tabIndex:-1,ref:h,style:{...l.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function x(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput",e.s(["Root",()=>k,"Switch",()=>k,"SwitchThumb",()=>m,"Thumb",()=>m,"createSwitchScope",()=>h],95291);var g=e.i(95291),g=g,v=e.i(31777);function w({className:e,size:a="default",...i}){return(0,t.jsx)(g.Root,{"data-slot":"switch","data-size":a,className:(0,v.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...i,children:(0,t.jsx)(g.Thumb,{"data-slot":"switch-thumb",className:(0,v.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>w],51911)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},24042,e=>{"use strict";let t=(0,e.i(3645).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>t],24042)},6910,e=>{"use strict";let t=(0,e.i(3645).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",()=>t],6910)},73504,81605,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(21023);let l=(0,s.createServerReference)("4019f70a0543cf0486aa16490cbe978f2a34a2347e",s.callServer,void 0,s.findSourceMapURL,"deployFeature"),r=(0,s.createServerReference)("40b3ff55d8c6015de48f42ddd0a47a270c41d82366",s.callServer,void 0,s.findSourceMapURL,"deployRepository"),n=(0,s.createServerReference)("4083635fcd972ab212a5a17bf919c30711e14955c3",s.callServer,void 0,s.findSourceMapURL,"deployApplication"),i=(0,s.createServerReference)("402f3ec754226496bb37e1bf882a17def51cf8ccb8",s.callServer,void 0,s.findSourceMapURL,"stopDeployment"),o=(0,s.createServerReference)("40ae71a74448e4f534011f66f784be8cc3005391e7",s.callServer,void 0,s.findSourceMapURL,"getDeploymentStatus");var c=e.i(18354);let d={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class u{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(e){let t=new Set;for(let a of e)t.add(a.targetId),this.update(a.targetId,{status:a.state,url:a.url,targetType:a.targetType,hydrated:!0});for(let[e,a]of this.entries)!t.has(e)&&a.hydrated&&null!==a.status?this.update(e,{status:null,url:null}):t.has(e)||a.hydrated||this.update(e,{hydrated:!0})}getEntry(e){return this.entries.get(e)??d}update(e,t){let a={...this.entries.get(e)??d,...t};this.entries.set(e,a),this.notify(e)}setStatus(e,t){null===t?this.update(e,{status:null,url:null,hydrated:!0}):this.update(e,{status:t.state,url:t.url,hydrated:!0})}subscribe(e,t){let a=this.listeners.get(e);return a||(a=new Set,this.listeners.set(e,a)),a.add(t),()=>{a?.delete(t),a?.size===0&&this.listeners.delete(e)}}subscribeAll(e){return this.globalListeners.add(e),()=>{this.globalListeners.delete(e)}}notify(e){let t=this.listeners.get(e);if(t)for(let e of t)e();for(let e of this.globalListeners)e()}}e.s(["DeploymentStatusStore",()=>u,"EMPTY_ENTRY",0,d],81605);let m=(0,c.createLogger)("[DeploymentStatusProvider]"),x=new Set(["Booting","Ready"]),p=(0,a.createContext)(null);function h({initialDeployments:e,children:s}){let c=(0,a.useRef)(null);c.current||(c.current=new u,c.current.hydrate(e));let d=c.current;(0,a.useEffect)(()=>{d.hydrate(e)},[e,d]);let h=(0,a.useRef)(new Map),f=(0,a.useCallback)(e=>{let t=h.current.get(e);t&&(clearInterval(t),h.current.delete(e))},[]),g=(0,a.useCallback)(e=>{if(h.current.has(e))return;let t=setInterval(async()=>{let t;try{t=await o(e)}catch(t){m.warn(`poll failed for "${e}"`,t),d.setStatus(e,null),f(e);return}if(!t||"Stopped"===t.state){d.setStatus(e,null),f(e);return}d.setStatus(e,t)},3e3);h.current.set(e,t)},[d,f]);(0,a.useEffect)(()=>{let e=h.current,t=d.subscribeAll(()=>{for(let[t]of e){let e=d.getEntry(t);e.status&&x.has(e.status)||f(t)}});return()=>{for(let[,a]of(t(),e))clearInterval(a);e.clear()}},[d,f]);let y=(0,a.useCallback)(e=>{!e||d.getEntry(e).hydrated||(d.update(e,{hydrated:!0}),(async()=>{try{let t=await o(e);d.setStatus(e,t),t&&x.has(t.state)&&g(e)}catch(t){m.warn(`ensureHydrated failed for "${e}"`,t)}})())},[d,g]),b=(0,a.useCallback)(async e=>{d.update(e.targetId,{deployLoading:!0,deployError:null});try{let t="feature"===e.targetType?await l(e.targetId):"application"===e.targetType?await n(e.targetId):await r(e.repositoryPath);if(!t.success)return void d.update(e.targetId,{deployLoading:!1,deployError:t.error??"An unexpected error occurred"});d.update(e.targetId,{deployLoading:!1,status:t.state??null,url:null,hydrated:!0,targetType:e.targetType}),g(e.targetId)}catch(a){let t=a instanceof Error?a.message:"An unexpected error occurred";d.update(e.targetId,{deployLoading:!1,deployError:t})}},[d,g]),j=(0,a.useCallback)(async e=>{if(e){d.update(e,{stopLoading:!0});try{(await i(e)).success?(f(e),d.update(e,{stopLoading:!1,status:null,url:null})):d.update(e,{stopLoading:!1})}catch(t){m.warn("stop error (non-critical)",t),d.update(e,{stopLoading:!1})}}},[d,f]),v=(0,a.useMemo)(()=>({store:d,deploy:b,stop:j,ensureHydrated:y}),[d,b,j,y]);return(0,t.jsx)(p.Provider,{value:v,children:s})}function f(){let e=(0,a.useContext)(p);if(!e)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return e}function g(){let e=(0,a.useContext)(p);return e||y}let y={store:new u,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};e.s(["DeploymentStatusProvider",()=>h,"useDeploymentStatusContext",()=>f,"useDeploymentStatusContextOptional",()=>g],73504)},8537,e=>{"use strict";var t=e.i(79054),a=e.i(73504);function s(){}function l(e){let{store:l,deploy:r,stop:n,ensureHydrated:i}=(0,a.useDeploymentStatusContextOptional)(),o=e?.targetId??"",c=(0,t.useCallback)(e=>o?l.subscribe(o,e):s,[l,o]),d=(0,t.useCallback)(()=>o?l.getEntry(o):l.getEntry(""),[l,o]),u=(0,t.useSyncExternalStore)(c,d,d);return(0,t.useEffect)(()=>{o&&i(o)},[o,i]),{deploy:(0,t.useCallback)(async()=>{e&&await r(e)},[r,e]),stop:(0,t.useCallback)(async()=>{o&&await n(o)},[n,o]),deployLoading:u.deployLoading,stopLoading:u.stopLoading,deployError:u.deployError,status:u.status,url:u.url}}e.s(["useDeployAction",()=>l])},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)},81181,e=>{"use strict";var t=e.i(95230);e.s(["Download",()=>t.default])},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},93192,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["Package",()=>t],93192)},9388,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["Monitor",()=>t],9388)},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),a=e.i(79054),s=e.i(81975),l=e.i(68304),r=e.i(31777),n=e.i(83428),i=e.i(83902),o=e.i(81181),c=e.i(9388),d=e.i(38573),u=e.i(49228),m=e.i(54277),x=e.i(95812),p=e.i(35e3),h=e.i(93192),f=e.i(35364),g=e.i(2828),y=e.i(33548),b=e.i(23925),j=e.i(30702),v=e.i(11495);let N={linux:"Linux",darwin:"macOS",win32:"Windows"},k={ide:{label:"IDE",icon:c.Monitor},"cli-agent":{label:"CLI Agent",icon:d.Terminal},vcs:{label:"VCS",icon:u.GitBranch},terminal:{label:"Terminal",icon:d.Terminal}};function w({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)(b.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 C({tool:e,open:s,onClose:l,onRefresh:r,autoStart:d}){let[u,m]=(0,a.useState)(!1),[x,p]=(0,a.useState)(!1),{logs:g,status:C,startInstall:S}=function(e){let[t,s]=(0,a.useState)([]),[l,r]=(0,a.useState)("idle"),[n,i]=(0,a.useState)(null),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,a.useEffect)(()=>c,[c]),{logs:t,status:l,result:n,startInstall:(0,a.useCallback)(()=>{c(),s([]),i(null),r("streaming");let t=new EventSource(`/api/tools/${e}/install/stream`);o.current=t,t.onmessage=e=>{s(t=>[...t,e.data])},t.addEventListener("done",e=>{let t=JSON.parse(e.data);i(t),r("error"===t.status?"error":"done"),c()}),t.onerror=()=>{r("error"),c()}},[e,c])}}(e.id),T=(0,a.useRef)(null),L=(0,a.useRef)(!0),I=(0,a.useRef)(!1),E="available"===e.status.status,M="error"===e.status.status,R=E&&!!e.openDirectory,z=!E&&!M&&e.autoInstall;async function D(){p(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{p(!1)}}(0,a.useEffect)(()=>{s&&d&&z&&"idle"===C&&!I.current&&(I.current=!0,S()),s||(I.current=!1)},[s,d,z,C,S]);let P=(0,a.useCallback)(()=>{let e=T.current;e&&(L.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,a.useEffect)(()=>{L.current&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[g,C]),(0,a.useEffect)(()=>{"done"===C&&r&&r()},[C,r]);let A=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 pe-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)(h.Package,{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)(w,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let a=k[e]??{label:e,icon:c.Monitor},s=a.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[10px]",children:[(0,t.jsx)(s,{className:"h-3 w-3"}),a.label]},e)})})]});return(0,t.jsx)(v.BaseDrawer,{open:s,onClose:l,size:"md",modal:!0,title:e.name,header:A,"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=>N[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 pe-16 font-mono text-xs leading-relaxed break-all whitespace-pre-wrap",children:(0,t.jsx)("code",{children:e.installCommand})}),(0,t.jsxs)(f.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)(b.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ms-1 text-[10px]",children:u?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[z?(0,t.jsxs)(f.Button,{size:"sm",onClick:S,disabled:"streaming"===C,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===C?(0,t.jsx)(n.Loader2,{className:"me-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o.Download,{className:"me-1.5 h-3.5 w-3.5"}),"streaming"===C?"Installing...":"Install"]}):null,R?(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:()=>void D(),disabled:x,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[x?(0,t.jsx)(n.Loader2,{className:"me-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(i.Rocket,{className:"me-1.5 h-3.5 w-3.5"}),"Launch"]}):null,e.documentationUrl?(0,t.jsx)(f.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:"ms-1 h-3 w-3"})]})}):null]}),("streaming"===C||"done"===C||"error"===C)&&g.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:T,onScroll:P,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:[g.map((e,a)=>(0,t.jsx)("div",{className:"break-all whitespace-pre-wrap",children:e},a)),"done"===C?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===C?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-red-400",children:"Installation failed"}):null]})]}):null]})})}let S={ide:{label:"IDE",icon:c.Monitor},"cli-agent":{label:"CLI Agent",icon:d.Terminal},vcs:{label:"VCS",icon:u.GitBranch},terminal:{label:"Terminal",icon:d.Terminal}};function T({tool:e,onRefresh:s,className:l}){let[d,u]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[j,v]=(0,a.useTransition)(),N="available"===e.status.status,k="error"===e.status.status,w=N&&!!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,r.cn)("bg-card group flex h-30 w-full cursor-pointer flex-col rounded-lg border p-3 transition-shadow hover:shadow-md",l),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)(h.Package,{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 a=S[e]??{label:e,icon:c.Monitor},s=a.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[9px]",children:[(0,t.jsx)(s,{className:"h-2.5 w-2.5"}),a.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:[k&&"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)(m.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):N?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.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)(x.Circle,{className:"h-3 w-3"}),"Not installed"]}),e.required?(0,t.jsx)(g.TooltipProvider,{children:(0,t.jsxs)(g.Tooltip,{children:[(0,t.jsx)(g.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)(g.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:N&&w?(0,t.jsxs)(f.Button,{size:"sm",variant:"outline",onClick:function(t){t.stopPropagation(),v(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:j,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[j?(0,t.jsx)(n.Loader2,{className:"me-1 h-3 w-3 animate-spin"}):(0,t.jsx)(i.Rocket,{className:"me-1 h-3 w-3"}),"Launch"]}):N||k?null:(0,t.jsxs)(f.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:"me-1 h-3 w-3"}),"Install"]})})]})]}),(0,t.jsx)(C,{tool:e,open:d,onClose:()=>u(!1),onRefresh:s,autoStart:y})]})}let L={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 I({tools:e,className:n}){let[i,o]=(0,a.useState)(e),[c,d]=(0,a.useState)("all"),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),m=i.filter(L[c]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.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:[i.filter(e=>"available"===e.status.status).length,"/",i.length," installed"]})]}),(0,t.jsxs)(l.Tabs,{value:c,onValueChange:e=>d(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(l.TabsList,{className:"h-7",children:[(0,t.jsx)(l.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(l.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(l.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(l.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(l.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(l.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)(s.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)(T,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>I],44412)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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)},24042,e=>{"use strict";let t=(0,e.i(3645).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>t],24042)},6910,e=>{"use strict";let t=(0,e.i(3645).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);e.s(["Square",()=>t],6910)},73504,81605,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(21023);let l=(0,s.createServerReference)("4019757a68b2ab125dac7b85cd2e1dac22da3db6c5",s.callServer,void 0,s.findSourceMapURL,"deployFeature"),r=(0,s.createServerReference)("40948fe1c9352411e89edf299ed1e8f51bce06bee4",s.callServer,void 0,s.findSourceMapURL,"deployRepository"),n=(0,s.createServerReference)("408ebe4b532992092d18a9b513f7f54038544f0585",s.callServer,void 0,s.findSourceMapURL,"deployApplication"),i=(0,s.createServerReference)("4058d4d774b9a00d4ea404dc2e1dffd3559a13fa1e",s.callServer,void 0,s.findSourceMapURL,"stopDeployment"),o=(0,s.createServerReference)("40c3e4f1640509f222ee938f58e619fb9dc9e885ad",s.callServer,void 0,s.findSourceMapURL,"getDeploymentStatus");var c=e.i(18354);let d={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class u{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(e){let t=new Set;for(let a of e)t.add(a.targetId),this.update(a.targetId,{status:a.state,url:a.url,targetType:a.targetType,hydrated:!0});for(let[e,a]of this.entries)!t.has(e)&&a.hydrated&&null!==a.status?this.update(e,{status:null,url:null}):t.has(e)||a.hydrated||this.update(e,{hydrated:!0})}getEntry(e){return this.entries.get(e)??d}update(e,t){let a={...this.entries.get(e)??d,...t};this.entries.set(e,a),this.notify(e)}setStatus(e,t){null===t?this.update(e,{status:null,url:null,hydrated:!0}):this.update(e,{status:t.state,url:t.url,hydrated:!0})}subscribe(e,t){let a=this.listeners.get(e);return a||(a=new Set,this.listeners.set(e,a)),a.add(t),()=>{a?.delete(t),a?.size===0&&this.listeners.delete(e)}}subscribeAll(e){return this.globalListeners.add(e),()=>{this.globalListeners.delete(e)}}notify(e){let t=this.listeners.get(e);if(t)for(let e of t)e();for(let e of this.globalListeners)e()}}e.s(["DeploymentStatusStore",()=>u,"EMPTY_ENTRY",0,d],81605);let m=(0,c.createLogger)("[DeploymentStatusProvider]"),x=new Set(["Booting","Ready"]),p=(0,a.createContext)(null);function h({initialDeployments:e,children:s}){let c=(0,a.useRef)(null);c.current||(c.current=new u,c.current.hydrate(e));let d=c.current;(0,a.useEffect)(()=>{d.hydrate(e)},[e,d]);let h=(0,a.useRef)(new Map),g=(0,a.useCallback)(e=>{let t=h.current.get(e);t&&(clearInterval(t),h.current.delete(e))},[]),f=(0,a.useCallback)(e=>{if(h.current.has(e))return;let t=setInterval(async()=>{let t;try{t=await o(e)}catch(t){m.warn(`poll failed for "${e}"`,t),d.setStatus(e,null),g(e);return}if(!t||"Stopped"===t.state){d.setStatus(e,null),g(e);return}d.setStatus(e,t)},3e3);h.current.set(e,t)},[d,g]);(0,a.useEffect)(()=>{let e=h.current,t=d.subscribeAll(()=>{for(let[t]of e){let e=d.getEntry(t);e.status&&x.has(e.status)||g(t)}});return()=>{for(let[,a]of(t(),e))clearInterval(a);e.clear()}},[d,g]);let y=(0,a.useCallback)(e=>{!e||d.getEntry(e).hydrated||(d.update(e,{hydrated:!0}),(async()=>{try{let t=await o(e);d.setStatus(e,t),t&&x.has(t.state)&&f(e)}catch(t){m.warn(`ensureHydrated failed for "${e}"`,t)}})())},[d,f]),b=(0,a.useCallback)(async e=>{d.update(e.targetId,{deployLoading:!0,deployError:null});try{let t="feature"===e.targetType?await l(e.targetId):"application"===e.targetType?await n(e.targetId):await r(e.repositoryPath);if(!t.success)return void d.update(e.targetId,{deployLoading:!1,deployError:t.error??"An unexpected error occurred"});d.update(e.targetId,{deployLoading:!1,status:t.state??null,url:null,hydrated:!0,targetType:e.targetType}),f(e.targetId)}catch(a){let t=a instanceof Error?a.message:"An unexpected error occurred";d.update(e.targetId,{deployLoading:!1,deployError:t})}},[d,f]),j=(0,a.useCallback)(async e=>{if(e){d.update(e,{stopLoading:!0});try{(await i(e)).success?(g(e),d.update(e,{stopLoading:!1,status:null,url:null})):d.update(e,{stopLoading:!1})}catch(t){m.warn("stop error (non-critical)",t),d.update(e,{stopLoading:!1})}}},[d,g]),v=(0,a.useMemo)(()=>({store:d,deploy:b,stop:j,ensureHydrated:y}),[d,b,j,y]);return(0,t.jsx)(p.Provider,{value:v,children:s})}function g(){let e=(0,a.useContext)(p);if(!e)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return e}function f(){let e=(0,a.useContext)(p);return e||y}let y={store:new u,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};e.s(["DeploymentStatusProvider",()=>h,"useDeploymentStatusContext",()=>g,"useDeploymentStatusContextOptional",()=>f],73504)},8537,e=>{"use strict";var t=e.i(79054),a=e.i(73504);function s(){}function l(e){let{store:l,deploy:r,stop:n,ensureHydrated:i}=(0,a.useDeploymentStatusContextOptional)(),o=e?.targetId??"",c=(0,t.useCallback)(e=>o?l.subscribe(o,e):s,[l,o]),d=(0,t.useCallback)(()=>o?l.getEntry(o):l.getEntry(""),[l,o]),u=(0,t.useSyncExternalStore)(c,d,d);return(0,t.useEffect)(()=>{o&&i(o)},[o,i]),{deploy:(0,t.useCallback)(async()=>{e&&await r(e)},[r,e]),stop:(0,t.useCallback)(async()=>{o&&await n(o)},[n,o]),deployLoading:u.deployLoading,stopLoading:u.stopLoading,deployError:u.deployError,status:u.status,url:u.url}}e.s(["useDeployAction",()=>l])},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)},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)},81181,e=>{"use strict";var t=e.i(95230);e.s(["Download",()=>t.default])},35e3,e=>{"use strict";var t=e.i(80986);e.s(["CheckCircle2",()=>t.default])},93192,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["Package",()=>t],93192)},9388,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["Monitor",()=>t],9388)},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),a=e.i(79054),s=e.i(81975),l=e.i(68304),r=e.i(31777),n=e.i(83428),i=e.i(83902),o=e.i(81181),c=e.i(9388),d=e.i(38573),u=e.i(49228),m=e.i(54277),x=e.i(95812),p=e.i(35e3),h=e.i(93192),g=e.i(35364),f=e.i(2828),y=e.i(33548),b=e.i(23925),j=e.i(30702),v=e.i(11495);let N={linux:"Linux",darwin:"macOS",win32:"Windows"},k={ide:{label:"IDE",icon:c.Monitor},"cli-agent":{label:"CLI Agent",icon:d.Terminal},vcs:{label:"VCS",icon:u.GitBranch},terminal:{label:"Terminal",icon:d.Terminal}};function w({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)(b.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 C({tool:e,open:s,onClose:l,onRefresh:r,autoStart:d}){let[u,m]=(0,a.useState)(!1),[x,p]=(0,a.useState)(!1),{logs:f,status:C,startInstall:S}=function(e){let[t,s]=(0,a.useState)([]),[l,r]=(0,a.useState)("idle"),[n,i]=(0,a.useState)(null),o=(0,a.useRef)(null),c=(0,a.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,a.useEffect)(()=>c,[c]),{logs:t,status:l,result:n,startInstall:(0,a.useCallback)(()=>{c(),s([]),i(null),r("streaming");let t=new EventSource(`/api/tools/${e}/install/stream`);o.current=t,t.onmessage=e=>{s(t=>[...t,e.data])},t.addEventListener("done",e=>{let t=JSON.parse(e.data);i(t),r("error"===t.status?"error":"done"),c()}),t.onerror=()=>{r("error"),c()}},[e,c])}}(e.id),T=(0,a.useRef)(null),L=(0,a.useRef)(!0),I=(0,a.useRef)(!1),E="available"===e.status.status,M="error"===e.status.status,R=E&&!!e.openDirectory,z=!E&&!M&&e.autoInstall;async function D(){p(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{p(!1)}}(0,a.useEffect)(()=>{s&&d&&z&&"idle"===C&&!I.current&&(I.current=!0,S()),s||(I.current=!1)},[s,d,z,C,S]);let P=(0,a.useCallback)(()=>{let e=T.current;e&&(L.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,a.useEffect)(()=>{L.current&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[f,C]),(0,a.useEffect)(()=>{"done"===C&&r&&r()},[C,r]);let A=(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 pe-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)(h.Package,{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)(w,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let a=k[e]??{label:e,icon:c.Monitor},s=a.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[10px]",children:[(0,t.jsx)(s,{className:"h-3 w-3"}),a.label]},e)})})]});return(0,t.jsx)(v.BaseDrawer,{open:s,onClose:l,size:"md",modal:!0,title:e.name,header:A,"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=>N[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 pe-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)(b.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(y.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ms-1 text-[10px]",children:u?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[z?(0,t.jsxs)(g.Button,{size:"sm",onClick:S,disabled:"streaming"===C,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===C?(0,t.jsx)(n.Loader2,{className:"me-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(o.Download,{className:"me-1.5 h-3.5 w-3.5"}),"streaming"===C?"Installing...":"Install"]}):null,R?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:()=>void D(),disabled:x,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[x?(0,t.jsx)(n.Loader2,{className:"me-1.5 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(i.Rocket,{className:"me-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:"ms-1 h-3 w-3"})]})}):null]}),("streaming"===C||"done"===C||"error"===C)&&f.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:T,onScroll:P,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:[f.map((e,a)=>(0,t.jsx)("div",{className:"break-all whitespace-pre-wrap",children:e},a)),"done"===C?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===C?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-red-400",children:"Installation failed"}):null]})]}):null]})})}let S={ide:{label:"IDE",icon:c.Monitor},"cli-agent":{label:"CLI Agent",icon:d.Terminal},vcs:{label:"VCS",icon:u.GitBranch},terminal:{label:"Terminal",icon:d.Terminal}};function T({tool:e,onRefresh:s,className:l}){let[d,u]=(0,a.useState)(!1),[y,b]=(0,a.useState)(!1),[j,v]=(0,a.useTransition)(),N="available"===e.status.status,k="error"===e.status.status,w=N&&!!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,r.cn)("bg-card group flex h-30 w-full cursor-pointer flex-col rounded-lg border p-3 transition-shadow hover:shadow-md",l),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)(h.Package,{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 a=S[e]??{label:e,icon:c.Monitor},s=a.icon;return(0,t.jsxs)("span",{className:"text-muted-foreground/70 inline-flex items-center gap-0.5 text-[9px]",children:[(0,t.jsx)(s,{className:"h-2.5 w-2.5"}),a.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:[k&&"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)(m.CircleX,{className:"h-3 w-3 shrink-0"}),e.status.errorMessage??"Error"]}):N?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(p.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)(x.Circle,{className:"h-3 w-3"}),"Not installed"]}),e.required?(0,t.jsx)(f.TooltipProvider,{children:(0,t.jsxs)(f.Tooltip,{children:[(0,t.jsx)(f.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)(f.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:N&&w?(0,t.jsxs)(g.Button,{size:"sm",variant:"outline",onClick:function(t){t.stopPropagation(),v(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:j,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-7 cursor-pointer rounded-md px-3 text-xs",children:[j?(0,t.jsx)(n.Loader2,{className:"me-1 h-3 w-3 animate-spin"}):(0,t.jsx)(i.Rocket,{className:"me-1 h-3 w-3"}),"Launch"]}):N||k?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:"me-1 h-3 w-3"}),"Install"]})})]})]}),(0,t.jsx)(C,{tool:e,open:d,onClose:()=>u(!1),onRefresh:s,autoStart:y})]})}let L={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 I({tools:e,className:n}){let[i,o]=(0,a.useState)(e),[c,d]=(0,a.useState)("all"),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),m=i.filter(L[c]);return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-4",n),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.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:[i.filter(e=>"available"===e.status.status).length,"/",i.length," installed"]})]}),(0,t.jsxs)(l.Tabs,{value:c,onValueChange:e=>d(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(l.TabsList,{className:"h-7",children:[(0,t.jsx)(l.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"px-2.5 text-xs",children:"All"}),(0,t.jsx)(l.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"px-2.5 text-xs",children:"IDEs"}),(0,t.jsx)(l.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"px-2.5 text-xs",children:"CLI Agents"}),(0,t.jsx)(l.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"px-2.5 text-xs",children:"Version Control"}),(0,t.jsx)(l.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"px-2.5 text-xs",children:"Terminals"})]}),(0,t.jsx)(l.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)(s.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)(T,{tool:e,onRefresh:u},e.id))})})]})]})}e.s(["ToolsPageClient",()=>I],44412)}]);