@shipit-ai/cli 1.167.1 → 1.169.0-pr12.6d78faf

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 (560) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/apis/json-schema/LiteLLMProxyConfig.yaml +14 -0
  3. package/apis/json-schema/Settings.yaml +3 -0
  4. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  5. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.d.ts +46 -0
  7. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.d.ts.map +1 -0
  8. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.js +12 -0
  9. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.d.ts +16 -0
  10. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.d.ts.map +1 -0
  11. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.js +34 -0
  12. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.d.ts +24 -0
  13. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.d.ts.map +1 -0
  14. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.js +52 -0
  15. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.d.ts +17 -0
  16. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.d.ts.map +1 -0
  17. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.js +33 -0
  18. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.d.ts +17 -0
  19. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.d.ts.map +1 -0
  20. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.js +33 -0
  21. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.d.ts +16 -0
  22. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.d.ts.map +1 -0
  23. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.js +33 -0
  24. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  25. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
  26. package/dist/packages/core/src/domain/generated/output.d.ts +25 -0
  27. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  29. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +13 -0
  30. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
  31. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +12 -0
  32. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
  33. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +22 -0
  34. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  35. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +18 -0
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.d.ts +14 -0
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.d.ts.map +1 -0
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.js +28 -0
  40. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.d.ts +4 -0
  41. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.d.ts.map +1 -0
  42. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.js +3 -0
  43. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.d.ts +78 -0
  44. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.d.ts.map +1 -0
  45. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.js +46 -0
  46. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.d.ts +29 -0
  47. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.d.ts.map +1 -0
  48. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.js +147 -0
  49. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.d.ts +11 -0
  50. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.d.ts.map +1 -0
  51. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.js +47 -0
  52. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/antigravity.json +1 -1
  53. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +1 -0
  54. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor-cli.json +1 -1
  55. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor.json +1 -1
  56. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +1 -0
  57. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +1 -0
  58. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +1 -0
  59. package/dist/src/presentation/web/app/actions/add-marketplace.d.ts +5 -0
  60. package/dist/src/presentation/web/app/actions/add-marketplace.d.ts.map +1 -0
  61. package/dist/src/presentation/web/app/actions/add-marketplace.js +11 -0
  62. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts +5 -0
  63. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts.map +1 -0
  64. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.js +11 -0
  65. package/dist/src/presentation/web/app/actions/install-plugin.d.ts +5 -0
  66. package/dist/src/presentation/web/app/actions/install-plugin.d.ts.map +1 -0
  67. package/dist/src/presentation/web/app/actions/install-plugin.js +11 -0
  68. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts +5 -0
  69. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts.map +1 -0
  70. package/dist/src/presentation/web/app/actions/toggle-plugin.js +11 -0
  71. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts +5 -0
  72. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts.map +1 -0
  73. package/dist/src/presentation/web/app/actions/uninstall-plugin.js +11 -0
  74. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  75. package/dist/src/presentation/web/app/layout.js +15 -2
  76. package/dist/src/presentation/web/app/plugins/page.d.ts +2 -0
  77. package/dist/src/presentation/web/app/plugins/page.d.ts.map +1 -0
  78. package/dist/src/presentation/web/app/plugins/page.js +23 -0
  79. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  80. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +4 -1
  81. package/dist/src/presentation/web/components/common/page-header/page-header.d.ts +3 -1
  82. package/dist/src/presentation/web/components/common/page-header/page-header.d.ts.map +1 -1
  83. package/dist/src/presentation/web/components/common/page-header/page-header.js +8 -2
  84. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  85. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
  86. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  87. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -1
  88. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts +9 -1
  89. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +1 -1
  90. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +12 -6
  91. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.d.ts.map +1 -1
  92. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.js +5 -1
  93. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.d.ts.map +1 -1
  94. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.js +15 -0
  95. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  96. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +18 -5
  97. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
  99. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  100. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +5 -1
  101. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts +9 -0
  102. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts.map +1 -0
  103. package/dist/src/presentation/web/components/features/plugins/plugin-card.js +15 -0
  104. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts +17 -0
  105. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts.map +1 -0
  106. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.js +60 -0
  107. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts +11 -0
  108. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts.map +1 -0
  109. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.js +33 -0
  110. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts +18 -0
  111. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts.map +1 -0
  112. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.js +51 -0
  113. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts +6 -0
  114. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts.map +1 -0
  115. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.js +115 -0
  116. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts +12 -0
  117. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts.map +1 -0
  118. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.js +24 -0
  119. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +3 -3
  120. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  121. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +23 -102
  122. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +2 -3
  123. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  124. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +18 -22
  125. package/dist/src/presentation/web/components/features/settings/ci-settings-section.d.ts.map +1 -1
  126. package/dist/src/presentation/web/components/features/settings/ci-settings-section.js +14 -5
  127. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -1
  128. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +14 -4
  129. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +9 -3
  130. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -1
  131. package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +75 -65
  132. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
  133. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +20 -18
  134. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.d.ts.map +1 -1
  135. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.js +1 -1
  136. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +3 -3
  137. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  138. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +53 -50
  139. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  140. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +27 -25
  141. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.d.ts.map +1 -1
  142. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.js +3 -3
  143. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts +6 -0
  144. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts.map +1 -0
  145. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.js +76 -0
  146. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts +15 -0
  147. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts.map +1 -0
  148. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.js +29 -0
  149. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +3 -3
  150. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  151. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +64 -47
  152. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  153. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +32 -24
  154. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  155. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +30 -381
  156. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +2 -0
  157. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  158. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +14 -0
  159. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts +13 -10
  160. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts.map +1 -1
  161. package/dist/src/presentation/web/components/features/settings/settings-section-utils.js +10 -10
  162. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
  163. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
  164. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +7 -7
  165. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.d.ts.map +1 -1
  166. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.js +1 -1
  167. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +3 -3
  168. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  169. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +118 -165
  170. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
  171. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  172. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +26 -64
  173. package/dist/src/presentation/web/components/features/skills/category-filter.d.ts.map +1 -1
  174. package/dist/src/presentation/web/components/features/skills/category-filter.js +12 -2
  175. package/dist/src/presentation/web/components/features/skills/skill-card.d.ts.map +1 -1
  176. package/dist/src/presentation/web/components/features/skills/skill-card.js +3 -3
  177. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.d.ts.map +1 -1
  178. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.js +27 -1
  179. package/dist/src/presentation/web/components/features/skills/skill-list.js +2 -2
  180. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +2 -2
  182. package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/features/tools/tool-card.js +20 -11
  184. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +1 -1
  185. package/dist/src/presentation/web/components/features/tools/tools-page-client.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/features/tools/tools-page-client.js +6 -1
  187. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  188. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +40 -44
  189. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  190. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  191. package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -1
  192. package/dist/src/presentation/web/components/ui/card.js +9 -1
  193. package/dist/src/presentation/web/components/ui/drawer.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/ui/drawer.js +8 -2
  195. package/dist/src/presentation/web/components/ui/tooltip.d.ts.map +1 -1
  196. package/dist/src/presentation/web/components/ui/tooltip.js +3 -3
  197. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  198. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  199. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  200. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  201. package/dist/src/presentation/web/lib/feature-flags.js +6 -0
  202. package/dist/translations/ar/web.json +40 -2
  203. package/dist/translations/de/web.json +40 -2
  204. package/dist/translations/en/web.json +40 -2
  205. package/dist/translations/es/web.json +40 -2
  206. package/dist/translations/fr/web.json +40 -2
  207. package/dist/translations/he/web.json +40 -2
  208. package/dist/translations/pt/web.json +40 -2
  209. package/dist/translations/ru/web.json +40 -2
  210. package/dist/tsconfig.build.tsbuildinfo +1 -1
  211. package/package.json +1 -1
  212. package/web/.next/BUILD_ID +1 -1
  213. package/web/.next/app-path-routes-manifest.json +1 -0
  214. package/web/.next/build-manifest.json +3 -3
  215. package/web/.next/fallback-build-manifest.json +3 -3
  216. package/web/.next/prerender-manifest.json +3 -3
  217. package/web/.next/required-server-files.js +3 -3
  218. package/web/.next/required-server-files.json +3 -3
  219. package/web/.next/routes-manifest.json +6 -0
  220. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/next-font-manifest.json +6 -2
  221. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  222. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  223. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  224. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/(dashboard)/@drawer/chat/page/next-font-manifest.json +6 -2
  226. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  227. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  228. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  229. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/(dashboard)/@drawer/create/page/next-font-manifest.json +6 -2
  231. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  232. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  233. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  234. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  235. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/next-font-manifest.json +6 -2
  236. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  237. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  238. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  239. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  240. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/next-font-manifest.json +6 -2
  241. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  242. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  243. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  244. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  245. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -2
  246. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  247. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  248. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  249. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -2
  251. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  252. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  255. package/web/.next/server/app/(dashboard)/chat/page/next-font-manifest.json +6 -2
  256. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  257. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  258. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  259. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -2
  261. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  262. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  263. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  264. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  265. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/next-font-manifest.json +6 -2
  266. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  267. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  268. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  269. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  270. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -2
  271. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  272. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  273. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  274. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -2
  276. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  277. package/web/.next/server/app/(dashboard)/page.js +1 -1
  278. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  280. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -2
  281. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  282. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  283. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  284. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -2
  286. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  287. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  288. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  289. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  290. package/web/.next/server/app/_global-error.html +1 -1
  291. package/web/.next/server/app/_global-error.rsc +1 -1
  292. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  293. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  294. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  295. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  296. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  297. package/web/.next/server/app/_not-found/page/next-font-manifest.json +6 -2
  298. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  299. package/web/.next/server/app/_not-found/page.js +1 -1
  300. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  301. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  302. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  303. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  304. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  305. package/web/.next/server/app/api/graph-data/route.js +1 -1
  306. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  307. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  308. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  309. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  310. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  311. package/web/.next/server/app/plugins/page/app-paths-manifest.json +3 -0
  312. package/web/.next/server/app/plugins/page/build-manifest.json +18 -0
  313. package/web/.next/server/app/plugins/page/next-font-manifest.json +10 -0
  314. package/web/.next/server/app/plugins/page/react-loadable-manifest.json +8 -0
  315. package/web/.next/server/app/plugins/page/server-reference-manifest.json +185 -0
  316. package/web/.next/server/app/plugins/page.js +17 -0
  317. package/web/.next/server/app/plugins/page.js.map +5 -0
  318. package/web/.next/server/app/plugins/page.js.nft.json +1 -0
  319. package/web/.next/server/app/plugins/page_client-reference-manifest.js +3 -0
  320. package/web/.next/server/app/settings/page/next-font-manifest.json +6 -2
  321. package/web/.next/server/app/settings/page/server-reference-manifest.json +34 -22
  322. package/web/.next/server/app/settings/page.js +2 -2
  323. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  324. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  325. package/web/.next/server/app/skills/page/next-font-manifest.json +6 -2
  326. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  327. package/web/.next/server/app/skills/page.js +1 -1
  328. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  329. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  330. package/web/.next/server/app/tools/page/next-font-manifest.json +6 -2
  331. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  332. package/web/.next/server/app/tools/page.js +1 -1
  333. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  334. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  335. package/web/.next/server/app/version/page/next-font-manifest.json +6 -2
  336. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  337. package/web/.next/server/app/version/page.js +1 -1
  338. package/web/.next/server/app/version/page.js.nft.json +1 -1
  339. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  340. package/web/.next/server/app-paths-manifest.json +1 -0
  341. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  342. package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js → [root-of-the-server]__07suer1._.js} +2 -2
  343. package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js → [root-of-the-server]__0sgzo7y._.js} +2 -2
  344. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  345. package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js → [root-of-the-server]__0uxlr84._.js} +2 -2
  346. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0c0dui7._.js +3 -0
  347. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0c0dui7._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  349. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  350. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  351. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  352. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  353. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  354. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js +4 -0
  355. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  357. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  358. package/web/.next/server/chunks/ssr/{_04s_q5r._.js → 12k._sonner_dist_index_mjs_0-vmpk5._.js} +2 -2
  359. package/web/.next/server/chunks/ssr/12k._sonner_dist_index_mjs_0-vmpk5._.js.map +1 -0
  360. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0rvrr1j._.js → [root-of-the-server]__0.5ojmt._.js} +2 -2
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -0
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js +3 -0
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js.map +1 -0
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  365. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  366. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uy_5rw._.js → [root-of-the-server]__0ge~xny._.js} +2 -2
  367. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uy_5rw._.js.map → [root-of-the-server]__0ge~xny._.js.map} +1 -1
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js +3 -0
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js.map +1 -0
  370. package/web/.next/server/chunks/ssr/{_0e5cv3q._.js → [root-of-the-server]__0n~o-g-._.js} +2 -2
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n~o-g-._.js.map +1 -0
  372. package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js → [root-of-the-server]__0qda~yi._.js} +2 -2
  373. package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js.map → [root-of-the-server]__0qda~yi._.js.map} +1 -1
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  376. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0r5zhk.._.js → [root-of-the-server]__0t~u8sd._.js} +2 -2
  377. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0r5zhk.._.js.map → [root-of-the-server]__0t~u8sd._.js.map} +1 -1
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js +3 -0
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js → [root-of-the-server]__10tll_l._.js} +2 -2
  381. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js.map → [root-of-the-server]__10tll_l._.js.map} +1 -1
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  383. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  384. package/web/.next/server/chunks/ssr/_0-09vq7._.js +1 -1
  385. package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
  386. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  387. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  388. package/web/.next/server/chunks/ssr/{_00u~.41._.js → _03x4h9e._.js} +2 -2
  389. package/web/.next/server/chunks/ssr/_03x4h9e._.js.map +1 -0
  390. package/web/.next/server/chunks/ssr/{_0hwjfpu._.js → _05fk0a4._.js} +2 -2
  391. package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +1 -0
  392. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  393. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  394. package/web/.next/server/chunks/ssr/{_0-.ckn5._.js → _07u.4jr._.js} +2 -2
  395. package/web/.next/server/chunks/ssr/{_0-.ckn5._.js.map → _07u.4jr._.js.map} +1 -1
  396. package/web/.next/server/chunks/ssr/_083k45~._.js +3 -0
  397. package/web/.next/server/chunks/ssr/_083k45~._.js.map +1 -0
  398. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  399. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  400. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  401. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  402. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  403. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  405. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/_0i~-084._.js +3 -0
  407. package/web/.next/server/chunks/ssr/_0i~-084._.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/_0kt18~b._.js +3 -0
  409. package/web/.next/server/chunks/ssr/_0kt18~b._.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/{_138qywk._.js → _0mj-tmi._.js} +2 -2
  411. package/web/.next/server/chunks/ssr/{_138qywk._.js.map → _0mj-tmi._.js.map} +1 -1
  412. package/web/.next/server/chunks/ssr/{_0hw~zvl._.js → _0o_oaao._.js} +2 -2
  413. package/web/.next/server/chunks/ssr/_0o_oaao._.js.map +1 -0
  414. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  415. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  417. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  418. package/web/.next/server/chunks/ssr/_0rcx2-c._.js +9 -0
  419. package/web/.next/server/chunks/ssr/_0rcx2-c._.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  421. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  422. package/web/.next/server/chunks/ssr/_0tcccbb._.js +1 -1
  423. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -1
  424. package/web/.next/server/chunks/ssr/_0tfz1v_._.js +3 -0
  425. package/web/.next/server/chunks/ssr/_0tfz1v_._.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/{_00k65h-._.js → _0u3d8.n._.js} +2 -2
  427. package/web/.next/server/chunks/ssr/_0u3d8.n._.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/_0vjw-e_._.js +7 -0
  429. package/web/.next/server/chunks/ssr/_0vjw-e_._.js.map +1 -0
  430. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  431. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  432. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  433. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  434. package/web/.next/server/chunks/ssr/_0ygafoy._.js +7 -0
  435. package/web/.next/server/chunks/ssr/_0ygafoy._.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  437. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  438. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  439. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  440. package/web/.next/server/chunks/ssr/_10joy2y._.js +3 -0
  441. package/web/.next/server/chunks/ssr/_10joy2y._.js.map +1 -0
  442. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  443. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  444. package/web/.next/server/chunks/ssr/_12uy.45._.js +3 -0
  445. package/web/.next/server/chunks/ssr/_12uy.45._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js +1 -1
  447. package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js.map +1 -1
  448. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +3 -0
  449. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  451. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  452. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  453. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  454. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  455. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  456. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js +1 -1
  457. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +1 -1
  458. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  459. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  460. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
  461. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
  462. package/web/.next/server/middleware-build-manifest.js +3 -3
  463. package/web/.next/server/next-font-manifest.js +1 -1
  464. package/web/.next/server/next-font-manifest.json +63 -2
  465. package/web/.next/server/pages/500.html +1 -1
  466. package/web/.next/server/server-reference-manifest.js +1 -1
  467. package/web/.next/server/server-reference-manifest.json +187 -61
  468. package/web/.next/static/chunks/{0q8ax~44oybo2.js → 01~u_q8i2zgcl.js} +2 -2
  469. package/web/.next/static/chunks/{0-woqr2brccx_.js → 025ml1.quzhqf.js} +1 -1
  470. package/web/.next/static/chunks/{0fg~vc93spa9c.js → 07gal-~-zwagj.js} +1 -1
  471. package/web/.next/static/chunks/07le1mov593z9.js +1 -0
  472. package/web/.next/static/chunks/{0ls0v8h_qbctm.js → 09ungqk9~va40.js} +1 -1
  473. package/web/.next/static/chunks/0ab36sfvo.9ai.js +1 -0
  474. package/web/.next/static/chunks/0aq9-lg.5r.nk.js +5 -0
  475. package/web/.next/static/chunks/{11bi612fz8agh.js → 0b2pi58fg3lt3.js} +1 -1
  476. package/web/.next/static/chunks/{022nrd6snse79.js → 0cvyulutrctst.js} +1 -1
  477. package/web/.next/static/chunks/0eqi_uuiepxhf.js +1 -0
  478. package/web/.next/static/chunks/0inayq2zzadja.js +1 -0
  479. package/web/.next/static/chunks/{0t3xjndx2s1_j.css → 0j.1nx3ly591i.css} +1 -0
  480. package/web/.next/static/chunks/{0v~n9z6b639zm.js → 0jwq.mr-.ltps.js} +1 -1
  481. package/web/.next/static/chunks/0k8m.qcahm63g.js +1 -0
  482. package/web/.next/static/chunks/0lc0x8kcu46ae.js +1 -0
  483. package/web/.next/static/chunks/0lz-oq74e_ciu.js +1 -0
  484. package/web/.next/static/chunks/0nkujbu62z1jl.js +7 -0
  485. package/web/.next/static/chunks/0o4m0k3642219.js +1 -0
  486. package/web/.next/static/chunks/0oadtfnesfdqc.js +1 -0
  487. package/web/.next/static/chunks/0udlnp30o1kjd.js +5 -0
  488. package/web/.next/static/chunks/{0q7ohuqneuur4.js → 0uryz2ek77e2a.js} +1 -1
  489. package/web/.next/static/chunks/0v7r7y~3e~oo6.css +1 -0
  490. package/web/.next/static/chunks/0xo.hi4px83w2.js +1 -0
  491. package/web/.next/static/chunks/{0j.wph28jrce1.js → 0xr0p_ynap2~d.js} +1 -1
  492. package/web/.next/static/chunks/0xtzpbc5mm5z7.js +5 -0
  493. package/web/.next/static/chunks/{02phgt~f2c-2q.js → 0~-kk8o121_13.js} +1 -1
  494. package/web/.next/static/chunks/13q1peb_t9vj8.js +1 -0
  495. package/web/.next/static/chunks/{0ps5sykbi-z5-.js → 16k169s1a_8ru.js} +1 -1
  496. package/web/.next/static/chunks/{0ma7k9iohb3bb.js → 17dp77weos4ao.js} +1 -1
  497. package/web/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
  498. package/web/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
  499. package/web/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
  500. package/web/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
  501. package/web/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
  502. package/web/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
  503. package/web/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
  504. package/web/package.json +2 -2
  505. package/web/public/favicon.svg +10 -0
  506. package/web/public/icons/tools/antigravity.svg +1 -0
  507. package/web/public/icons/tools/bash.svg +38 -0
  508. package/web/public/icons/tools/cursor-cli.svg +12 -0
  509. package/web/public/icons/tools/cursor.svg +1 -0
  510. package/web/public/icons/tools/fish.svg +153 -0
  511. package/web/public/icons/tools/powershell.svg +29 -0
  512. package/web/public/icons/tools/zsh.svg +1 -0
  513. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js +0 -3
  514. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js +0 -3
  516. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js.map +0 -1
  517. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js +0 -7
  518. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +0 -1
  520. package/web/.next/server/chunks/ssr/_00k65h-._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/_00u~.41._.js.map +0 -1
  522. package/web/.next/server/chunks/ssr/_04s_q5r._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/_08i-c2n._.js +0 -3
  524. package/web/.next/server/chunks/ssr/_08i-c2n._.js.map +0 -1
  525. package/web/.next/server/chunks/ssr/_0aaotn-._.js +0 -3
  526. package/web/.next/server/chunks/ssr/_0aaotn-._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +0 -1
  528. package/web/.next/server/chunks/ssr/_0gdghcr._.js +0 -3
  529. package/web/.next/server/chunks/ssr/_0gdghcr._.js.map +0 -1
  530. package/web/.next/server/chunks/ssr/_0hwjfpu._.js.map +0 -1
  531. package/web/.next/server/chunks/ssr/_0hw~zvl._.js.map +0 -1
  532. package/web/.next/server/chunks/ssr/_0n.magx._.js +0 -3
  533. package/web/.next/server/chunks/ssr/_0n.magx._.js.map +0 -1
  534. package/web/.next/server/chunks/ssr/_0phryzt._.js +0 -3
  535. package/web/.next/server/chunks/ssr/_0phryzt._.js.map +0 -1
  536. package/web/.next/server/chunks/ssr/_0y8u4.e._.js +0 -9
  537. package/web/.next/server/chunks/ssr/_0y8u4.e._.js.map +0 -1
  538. package/web/.next/server/chunks/ssr/_12un22l._.js +0 -7
  539. package/web/.next/server/chunks/ssr/_12un22l._.js.map +0 -1
  540. package/web/.next/static/chunks/0-lu0b1ewsb0_.js +0 -1
  541. package/web/.next/static/chunks/01~dudieyb7wl.js +0 -5
  542. package/web/.next/static/chunks/02kpdawdtqcxm.js +0 -1
  543. package/web/.next/static/chunks/03s7z6w1lj0w~.js +0 -1
  544. package/web/.next/static/chunks/04~sw.nhpwy6s.css +0 -1
  545. package/web/.next/static/chunks/05enics63g._-.js +0 -7
  546. package/web/.next/static/chunks/08611baheit.t.js +0 -1
  547. package/web/.next/static/chunks/0_9k2ybutuphq.js +0 -1
  548. package/web/.next/static/chunks/0m5~9kij3s~81.js +0 -1
  549. package/web/.next/static/chunks/0n3kuj7t_-jzp.js +0 -1
  550. package/web/.next/static/chunks/0q~uf2s33.48w.js +0 -1
  551. package/web/.next/static/chunks/15m2wfd5k_7fj.js +0 -1
  552. package/web/.next/static/chunks/15rbgqykl.er8.js +0 -1
  553. package/web/.next/static/chunks/164dnpi666fv_.js +0 -5
  554. package/web/.next/static/chunks/17z2sq7c5z8cr.js +0 -5
  555. /package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js.map → [root-of-the-server]__07suer1._.js.map} +0 -0
  556. /package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js.map → [root-of-the-server]__0sgzo7y._.js.map} +0 -0
  557. /package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js.map → [root-of-the-server]__0uxlr84._.js.map} +0 -0
  558. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → vD7xT4_iwKDhgj4-rr637}/_buildManifest.js +0 -0
  559. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → vD7xT4_iwKDhgj4-rr637}/_clientMiddlewareManifest.js +0 -0
  560. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → vD7xT4_iwKDhgj4-rr637}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84735,e=>{"use strict";let t=(0,e.i(54864).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",0,t],84735)},70727,e=>{"use strict";let t=(0,e.i(54864).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",0,t],70727)},60589,e=>{"use strict";let t=(0,e.i(54864).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",0,t],60589)},63995,e=>{"use strict";let t=(0,e.i(54864).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["default",0,t])},29549,e=>{"use strict";let t=(0,e.i(54864).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",0,t],29549)},81481,e=>{"use strict";let t=(0,e.i(54864).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,t],81481)},79558,e=>{"use strict";var t=e.i(88641);e.s(["Download",()=>t.default])},86024,e=>{"use strict";let t=(0,e.i(54864).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",0,t],86024)},89048,e=>{"use strict";let t=(0,e.i(54864).default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["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-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);e.s(["Rocket",0,t],89048)},44412,e=>{"use strict";var t=e.i(96871),a=e.i(16539),s=e.i(43606),l=e.i(68304),r=e.i(31777),n=e.i(79561),i=e.i(89048),o=e.i(79558),d=e.i(66358),c=e.i(29549),m=e.i(46380),x=e.i(86024),u=e.i(81481),h=e.i(63995),h=h,p=e.i(35364),g=e.i(2828),f=e.i(67088),j=e.i(85149),b=e.i(84735);let N=(0,e.i(54864).default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);var k=e.i(70727),v=e.i(60589),w=e.i(11495);let y={linux:"Linux",darwin:"macOS",win32:"Windows"},C={ide:{label:"IDE",icon:N},"cli-agent":{label:"CLI Agent",icon:k.Terminal},vcs:{label:"VCS",icon:v.GitBranch},terminal:{label:"Terminal",icon:k.Terminal}};function T({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)(j.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 I({tool:e,open:s,onClose:l,onRefresh:r,autoStart:d}){let[c,m]=(0,a.useState)(!1),[u,h]=(0,a.useState)(!1),{logs:g,status:k,startInstall:v}=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),d=(0,a.useCallback)(()=>{o.current&&(o.current.close(),o.current=null)},[]);return(0,a.useEffect)(()=>d,[d]),{logs:t,status:l,result:n,startInstall:(0,a.useCallback)(()=>{d(),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"),d()}),t.onerror=()=>{r("error"),d()}},[e,d])}}(e.id),S=(0,a.useRef)(null),M=(0,a.useRef)(!0),z=(0,a.useRef)(!1),L="available"===e.status.status,E="error"===e.status.status,P=L&&!!e.openDirectory,B=!L&&!E&&e.autoInstall;async function V(){h(!0);try{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})}finally{h(!1)}}(0,a.useEffect)(()=>{s&&d&&B&&"idle"===k&&!z.current&&(z.current=!0,v()),s||(z.current=!1)},[s,d,B,k,v]);let D=(0,a.useCallback)(()=>{let e=S.current;e&&(M.current=e.scrollTop+e.clientHeight>=e.scrollHeight-50)},[]);(0,a.useEffect)(()=>{M.current&&S.current&&(S.current.scrollTop=S.current.scrollHeight)},[g,k]),(0,a.useEffect)(()=>{"done"===k&&r&&r()},[k,r]);let R=(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"}):(0,t.jsx)(x.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)(T,{status:e.status.status})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:e.tags.map(e=>{let a=C[e]??{label:e,icon:N},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)(w.BaseDrawer,{open:s,onClose:l,size:"md",modal:!0,title:e.name,header:R,"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=>y[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)(p.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":c?"Copied!":"Copy install command",children:[c?(0,t.jsx)(j.Check,{className:"h-3.5 w-3.5 text-emerald-500"}):(0,t.jsx)(f.Copy,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"ms-1 text-[10px]",children:c?"Copied!":"Copy"})]})]})]}):null,(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[B?(0,t.jsxs)(p.Button,{size:"sm",onClick:v,disabled:"streaming"===k,"aria-label":`Install ${e.name}`,className:"cursor-pointer",children:["streaming"===k?(0,t.jsx)(n.LoaderCircle,{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"===k?"Installing...":"Install"]}):null,P?(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>void V(),disabled:u,"aria-label":`Launch ${e.name}`,className:"cursor-pointer",children:[u?(0,t.jsx)(n.LoaderCircle,{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)(p.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)(b.ExternalLink,{className:"ms-1 h-3 w-3"})]})}):null]}),("streaming"===k||"done"===k||"error"===k)&&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:S,onScroll:D,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"===k?(0,t.jsx)("div",{className:"mt-2 border-t border-zinc-700 pt-2 text-emerald-400",children:"Installation complete"}):null,"error"===k?(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:"IDE","cli-agent":"CLI Agent",vcs:"VCS",terminal:"Terminal"};function M({tool:e,onRefresh:s,className:l}){let[f,j]=(0,a.useState)(!1),[b,N]=(0,a.useState)(!1),[k,v]=(0,a.useTransition)(),w="available"===e.status.status,y="error"===e.status.status,C=w&&!!e.openDirectory;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{"data-testid":"tool-card",onClick:function(){N(!1),j(!0)},className:(0,r.cn)("bg-card editorial-shadow group flex w-full cursor-pointer flex-col gap-4 rounded-xl p-5","transition-all duration-300 hover:-translate-y-0.5 hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600",l),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-slate-100 p-2 ring-1 ring-slate-200/50 dark:bg-slate-800 dark:ring-slate-700/50",children:e.iconUrl?(0,t.jsx)("img",{src:e.iconUrl,alt:"",width:28,height:28,className:"h-full w-full"}):(0,t.jsx)(x.Package,{className:"text-muted-foreground h-full w-full"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h3",{"data-testid":"tool-card-name",className:"text-foreground truncate text-sm leading-tight font-bold tracking-tight",children:e.name}),e.author?(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-1.5",children:[(0,t.jsx)("span",{"data-testid":"tool-card-vendor-label",className:"text-[9px] font-bold tracking-wider text-slate-400 uppercase",children:"Vendor"}),(0,t.jsx)("span",{"data-testid":"tool-card-vendor",className:"text-muted-foreground truncate text-xs font-medium",children:e.author})]}):e.tags.length>0?(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[9px] font-bold tracking-wider text-slate-400 uppercase",children:"Tag"}),(0,t.jsx)("span",{"data-testid":"tool-card-tags",className:"text-muted-foreground truncate text-xs font-medium",children:e.tags.map(e=>S[e]??e).join(" · ")})]}):null]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[y&&"error"===e.status.status?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-medium text-red-600 dark:text-red-400",title:e.status.errorMessage,children:[(0,t.jsx)(d.CircleX,{className:"h-3 w-3 shrink-0"}),"Error"]}):w?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-medium text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(m.CircleCheck,{className:"h-3 w-3"}),"Installed"]}):(0,t.jsxs)("span",{className:"text-muted-foreground flex items-center gap-1 text-[10px] font-medium",children:[(0,t.jsx)(c.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:"shrink-0 rounded-full bg-amber-100 px-2 py-0.5 text-[9px] font-bold tracking-wider text-amber-700 uppercase dark:bg-amber-900/40 dark:text-amber-400",children:"Required"})}),(0,t.jsx)(g.TooltipContent,{side:"top",children:"This tool is required for ShipIT to function properly"})]})}):null]})]}),(0,t.jsx)("p",{"data-testid":"tool-card-summary",className:"text-muted-foreground -mt-2 line-clamp-2 text-xs leading-relaxed",children:e.summary}),(0,t.jsx)("div",{className:"mt-auto flex flex-col gap-1.5",children:w&&C?(0,t.jsxs)(p.Button,{variant:"default",onClick:function(t){t.stopPropagation(),v(async()=>{await fetch(`/api/tools/${e.id}/launch`,{method:"POST"})})},disabled:k,"aria-label":`Launch ${e.name}`,"data-testid":"tool-card-launch-button",className:"h-9 w-full cursor-pointer rounded-lg text-xs font-bold tracking-wide transition-all duration-300 hover:-translate-y-0.5 hover:shadow-md",children:[k?(0,t.jsx)(n.LoaderCircle,{className:"me-1 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(i.Rocket,{className:"me-1 h-3.5 w-3.5"}),"Launch"]}):w||y?y?(0,t.jsxs)(p.Button,{variant:"outline",onClick:e=>{e.stopPropagation(),N(!1),j(!0)},"aria-label":`View error details for ${e.name}`,"data-testid":"tool-card-error-button",className:"h-9 w-full cursor-pointer rounded-lg border-red-300 text-xs font-bold tracking-wide text-red-600 transition-all duration-300 hover:-translate-y-0.5 hover:bg-red-50 hover:shadow-md dark:border-red-900 dark:text-red-400 dark:hover:bg-red-950/30",children:[(0,t.jsx)(h.default,{className:"me-1 h-3.5 w-3.5"}),"View Error"]}):(0,t.jsxs)(p.Button,{variant:"outline",onClick:e=>{e.stopPropagation(),N(!1),j(!0)},"aria-label":`View details for ${e.name}`,"data-testid":"tool-card-details-button",className:"h-9 w-full cursor-pointer rounded-lg text-xs font-bold tracking-wide transition-all duration-300 hover:-translate-y-0.5 hover:shadow-md",children:[(0,t.jsx)(u.Info,{className:"me-1 h-3.5 w-3.5"}),"View Details"]}):(0,t.jsxs)(p.Button,{variant:"default",onClick:function(t){t.stopPropagation(),N(e.autoInstall),j(!0)},"aria-label":`Install ${e.name}`,"data-testid":"tool-card-install-button",className:"h-9 w-full cursor-pointer rounded-lg text-xs font-bold tracking-wide transition-all duration-300 hover:-translate-y-0.5 hover:shadow-md",children:[(0,t.jsx)(o.Download,{className:"me-1 h-3.5 w-3.5"}),"Install"]})})]}),(0,t.jsx)(I,{tool:e,open:f,onClose:()=>j(!1),onRefresh:s,autoStart:b})]})}let z={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")};e.s(["ToolsPageClient",0,function({tools:e,className:n}){let[i,o]=(0,a.useState)(e),[d,c]=(0,a.useState)("all"),m=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/tools");if(e.ok){let t=await e.json();o(t)}}catch{}},[]),x=i.filter(z[d]),u=i.filter(e=>"available"===e.status.status).length;return(0,t.jsxs)("div",{"data-testid":"tools-page-client",className:(0,r.cn)("space-y-8",n),children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsx)("span",{className:"text-[10px] font-bold tracking-[0.2em] text-slate-400 uppercase",children:"Developer Portal"})}),(0,t.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,t.jsx)("h1",{className:"text-foreground text-3xl font-black tracking-tight",children:"Tools"}),(0,t.jsxs)("span",{className:"text-muted-foreground text-sm font-medium",children:[u," of ",i.length," installed"]})]})]}),(0,t.jsxs)(l.Tabs,{value:d,onValueChange:e=>c(e),"data-testid":"tools-page-tabs",children:[(0,t.jsxs)(l.TabsList,{"data-editorial":"true",className:"bg-card editorial-shadow h-10 p-1",children:[(0,t.jsx)(l.TabsTrigger,{value:"all","data-testid":"tools-tab-all",className:"cursor-pointer px-4 text-xs font-bold",children:"All"}),(0,t.jsx)(l.TabsTrigger,{value:"ide","data-testid":"tools-tab-ide",className:"cursor-pointer px-4 text-xs font-bold",children:"IDEs"}),(0,t.jsx)(l.TabsTrigger,{value:"cli-agent","data-testid":"tools-tab-cli-agent",className:"cursor-pointer px-4 text-xs font-bold",children:"CLI Agents"}),(0,t.jsx)(l.TabsTrigger,{value:"vcs","data-testid":"tools-tab-vcs",className:"cursor-pointer px-4 text-xs font-bold",children:"Version Control"}),(0,t.jsx)(l.TabsTrigger,{value:"terminal","data-testid":"tools-tab-terminal",className:"cursor-pointer px-4 text-xs font-bold",children:"Terminals"})]}),(0,t.jsx)(l.TabsContent,{value:d,className:"mt-6",children:0===x.length?(0,t.jsxs)("div",{"data-testid":"tools-page-empty",className:"text-muted-foreground flex flex-col items-center justify-center py-16 text-center",children:[(0,t.jsx)(s.Wrench,{className:"mb-3 h-8 w-8 opacity-20"}),(0,t.jsx)("p",{className:"text-sm",children:"No tools in this category."})]}):(0,t.jsx)("div",{"data-testid":"tools-page-grid",className:"grid grid-cols-1 gap-6 md:grid-cols-2 xl:grid-cols-3",children:x.map(e=>(0,t.jsx)(M,{tool:e,onRefresh:m},e.id))})})]})]})}],44412)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47373,27069,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(70309);function o(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",0,o],27069);var l=e.i(91967),a=e.i(87099),i=e.i(22353),s=e.i(9413),c=e.i(75649),d=e.i(3659),u=e.i(87656),p=e.i(62854),f=e.i(11207),m=e.i(73071),h=e.i(76903),v=e.i(85565),g=e.i(60310),x=e.i(88248),y=e.i(36567),w=e.i(18731),S=e.i(9641),b=e.i(87312),C=e.i(73772),j=e.i(69759),P=[" ","Enter","ArrowUp","ArrowDown"],R=[" ","Enter"],E="Select",[N,k,I]=(0,a.createCollection)(E),[T,D]=(0,s.createContextScope)(E,[I,m.createPopperScope]),L=(0,m.createPopperScope)(),[M,H]=T(E),[_,A]=T(E),B=e=>{let{__scopeSelect:n,children:o,open:l,defaultOpen:a,onOpenChange:i,value:s,defaultValue:d,onValueChange:u,dir:p,name:h,autoComplete:v,disabled:g,required:x,form:w}=e,S=L(n),[b,C]=r.useState(null),[j,P]=r.useState(null),[R,k]=r.useState(!1),I=(0,c.useDirection)(p),[T,D]=(0,y.useControllableState)({prop:l,defaultProp:a??!1,onChange:i,caller:E}),[H,A]=(0,y.useControllableState)({prop:s,defaultProp:d,onChange:u,caller:E}),B=r.useRef(null),F=!b||w||!!b.closest("form"),[O,V]=r.useState(new Set),U=Array.from(O).map(e=>e.props.value).join(";");return(0,t.jsx)(m.Root,{...S,children:(0,t.jsxs)(M,{required:x,scope:n,trigger:b,onTriggerChange:C,valueNode:j,onValueNodeChange:P,valueNodeHasChildren:R,onValueNodeHasChildrenChange:k,contentId:(0,f.useId)(),value:H,onValueChange:A,open:T,onOpenChange:D,dir:I,triggerPointerDownPosRef:B,disabled:g,children:[(0,t.jsx)(N.Provider,{scope:n,children:(0,t.jsx)(_,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{V(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{V(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:o})}),F?(0,t.jsxs)(eP,{"aria-hidden":!0,required:x,tabIndex:-1,name:h,autoComplete:v,value:H,onChange:e=>A(e.target.value),disabled:g,form:w,children:[void 0===H?(0,t.jsx)("option",{value:""}):null,Array.from(O)]},U):null]})})};B.displayName=E;var F="SelectTrigger",O=r.forwardRef((e,n)=>{let{__scopeSelect:o,disabled:a=!1,...s}=e,c=L(o),d=H(F,o),u=d.disabled||a,p=(0,i.useComposedRefs)(n,d.onTriggerChange),f=k(o),h=r.useRef("touch"),[g,x,y]=eE(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===d.value),n=eN(t,e,r);void 0!==n&&d.onValueChange(n.value)}),w=e=>{u||(d.onOpenChange(!0),y()),e&&(d.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(m.Anchor,{asChild:!0,...c,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":eR(d.value)?"":void 0,...s,ref:p,onClick:(0,l.composeEventHandlers)(s.onClick,e=>{e.currentTarget.focus(),"mouse"!==h.current&&w(e)}),onPointerDown:(0,l.composeEventHandlers)(s.onPointerDown,e=>{h.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,l.composeEventHandlers)(s.onKeyDown,e=>{let t=""!==g.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||x(e.key),(!t||" "!==e.key)&&P.includes(e.key)&&(w(),e.preventDefault())})})})});O.displayName=F;var V="SelectValue",U=r.forwardRef((e,r)=>{let{__scopeSelect:n,className:o,style:l,children:a,placeholder:s="",...c}=e,d=H(V,n),{onValueNodeHasChildrenChange:u}=d,p=void 0!==a,f=(0,i.useComposedRefs)(r,d.onValueNodeChange);return(0,w.useLayoutEffect)(()=>{u(p)},[u,p]),(0,t.jsx)(v.Primitive.span,{...c,ref:f,style:{pointerEvents:"none"},children:eR(d.value)?(0,t.jsx)(t.Fragment,{children:s}):a})});U.displayName=V;var K=r.forwardRef((e,r)=>{let{__scopeSelect:n,children:o,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:r,children:o||"▼"})});K.displayName="SelectIcon";var z=e=>(0,t.jsx)(h.Portal,{asChild:!0,...e});z.displayName="SelectPortal";var W="SelectContent",G=r.forwardRef((e,o)=>{let l=H(W,e.__scopeSelect),[a,i]=r.useState();return((0,w.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),l.open)?(0,t.jsx)(X,{...e,ref:o}):a?n.createPortal((0,t.jsx)($,{scope:e.__scopeSelect,children:(0,t.jsx)(N.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),a):null});G.displayName=W;var[$,q]=T(W),Y=(0,g.createSlot)("SelectContent.RemoveScroll"),X=r.forwardRef((e,n)=>{let{__scopeSelect:o,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:c,onPointerDownOutside:f,side:m,sideOffset:h,align:v,alignOffset:g,arrowPadding:x,collisionBoundary:y,collisionPadding:w,sticky:S,hideWhenDetached:b,avoidCollisions:P,...R}=e,E=H(W,o),[N,I]=r.useState(null),[T,D]=r.useState(null),L=(0,i.useComposedRefs)(n,e=>I(e)),[M,_]=r.useState(null),[A,B]=r.useState(null),F=k(o),[O,V]=r.useState(!1),U=r.useRef(!1);r.useEffect(()=>{if(N)return(0,C.hideOthers)(N)},[N]),(0,u.useFocusGuards)();let K=r.useCallback(e=>{let[t,...r]=F().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(r?.scrollIntoView({block:"nearest"}),r===t&&T&&(T.scrollTop=0),r===n&&T&&(T.scrollTop=T.scrollHeight),r?.focus(),document.activeElement!==o))return},[F,T]),z=r.useCallback(()=>K([M,N]),[K,M,N]);r.useEffect(()=>{O&&z()},[O,z]);let{onOpenChange:G,triggerPointerDownPosRef:q}=E;r.useEffect(()=>{if(N){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(q.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(q.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():N.contains(r.target)||G(!1),document.removeEventListener("pointermove",t),q.current=null};return null!==q.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[N,G,q]),r.useEffect(()=>{let e=()=>G(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[G]);let[X,J]=eE(e=>{let t=F().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eN(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),ee=r.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==E.value&&E.value===t||n)&&(_(e),n&&(U.current=!0))},[E.value]),et=r.useCallback(()=>N?.focus(),[N]),er=r.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==E.value&&E.value===t||n)&&B(e)},[E.value]),en="popper"===a?Z:Q,eo=en===Z?{side:m,sideOffset:h,align:v,alignOffset:g,arrowPadding:x,collisionBoundary:y,collisionPadding:w,sticky:S,hideWhenDetached:b,avoidCollisions:P}:{};return(0,t.jsx)($,{scope:o,content:N,viewport:T,onViewportChange:D,itemRefCallback:ee,selectedItem:M,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:z,selectedItemText:A,position:a,isPositioned:O,searchRef:X,children:(0,t.jsx)(j.RemoveScroll,{as:Y,allowPinchZoom:!0,children:(0,t.jsx)(p.FocusScope,{asChild:!0,trapped:E.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,l.composeEventHandlers)(s,e=>{E.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(d.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:(0,t.jsx)(en,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:e=>e.preventDefault(),...R,...eo,onPlaced:()=>V(!0),ref:L,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:(0,l.composeEventHandlers)(R.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||J(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>K(t)),e.preventDefault()}})})})})})})});X.displayName="SelectContentImpl";var Q=r.forwardRef((e,n)=>{let{__scopeSelect:l,onPlaced:a,...s}=e,c=H(W,l),d=q(W,l),[u,p]=r.useState(null),[f,m]=r.useState(null),h=(0,i.useComposedRefs)(n,e=>m(e)),g=k(l),x=r.useRef(!1),y=r.useRef(!0),{viewport:S,selectedItem:b,selectedItemText:C,focusSelectedItem:j}=d,P=r.useCallback(()=>{if(c.trigger&&c.valueNode&&u&&f&&S&&b&&C){let e=c.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=c.valueNode.getBoundingClientRect(),n=C.getBoundingClientRect();if("rtl"!==c.dir){let l=n.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,c=Math.max(s,t.width),d=o(a,[10,Math.max(10,window.innerWidth-10-c)]);u.style.minWidth=s+"px",u.style.left=d+"px"}else{let l=t.right-n.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,c=Math.max(s,t.width),d=o(a,[10,Math.max(10,window.innerWidth-10-c)]);u.style.minWidth=s+"px",u.style.right=d+"px"}let l=g(),i=window.innerHeight-20,s=S.scrollHeight,d=window.getComputedStyle(f),p=parseInt(d.borderTopWidth,10),m=parseInt(d.paddingTop,10),h=parseInt(d.borderBottomWidth,10),v=p+m+s+parseInt(d.paddingBottom,10)+h,y=Math.min(5*b.offsetHeight,v),w=window.getComputedStyle(S),j=parseInt(w.paddingTop,10),P=parseInt(w.paddingBottom,10),R=e.top+e.height/2-10,E=b.offsetHeight/2,N=p+m+(b.offsetTop+E);if(N<=R){let e=l.length>0&&b===l[l.length-1].ref.current;u.style.bottom="0px";let t=Math.max(i-R,E+(e?P:0)+(f.clientHeight-S.offsetTop-S.offsetHeight)+h);u.style.height=N+t+"px"}else{let e=l.length>0&&b===l[0].ref.current;u.style.top="0px";let t=Math.max(R,p+S.offsetTop+(e?j:0)+E);u.style.height=t+(v-N)+"px",S.scrollTop=N-R+S.offsetTop}u.style.margin="10px 0",u.style.minHeight=y+"px",u.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>x.current=!0)}},[g,c.trigger,c.valueNode,u,f,S,b,C,c.dir,a]);(0,w.useLayoutEffect)(()=>P(),[P]);let[R,E]=r.useState();(0,w.useLayoutEffect)(()=>{f&&E(window.getComputedStyle(f).zIndex)},[f]);let N=r.useCallback(e=>{e&&!0===y.current&&(P(),j?.(),y.current=!1)},[P,j]);return(0,t.jsx)(J,{scope:l,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:N,children:(0,t.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:(0,t.jsx)(v.Primitive.div,{...s,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});Q.displayName="SelectItemAlignedPosition";var Z=r.forwardRef((e,r)=>{let{__scopeSelect:n,align:o="start",collisionPadding:l=10,...a}=e,i=L(n);return(0,t.jsx)(m.Content,{...i,...a,ref:r,align:o,collisionPadding:l,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Z.displayName="SelectPopperPosition";var[J,ee]=T(W,{}),et="SelectViewport",er=r.forwardRef((e,n)=>{let{__scopeSelect:o,nonce:a,...s}=e,c=q(et,o),d=ee(et,o),u=(0,i.useComposedRefs)(n,c.onViewportChange),p=r.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,t.jsx)(N.Slot,{scope:o,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:(0,l.composeEventHandlers)(s.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=d;if(n?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o<n){let l=o+e,a=Math.min(n,l),i=l-a;r.style.height=a+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});er.displayName=et;var en="SelectGroup",[eo,el]=T(en),ea=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=(0,f.useId)();return(0,t.jsx)(eo,{scope:n,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...o,ref:r})})});ea.displayName=en;var ei="SelectLabel",es=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=el(ei,n);return(0,t.jsx)(v.Primitive.div,{id:l.id,...o,ref:r})});es.displayName=ei;var ec="SelectItem",[ed,eu]=T(ec),ep=r.forwardRef((e,n)=>{let{__scopeSelect:o,value:a,disabled:s=!1,textValue:c,...d}=e,u=H(ec,o),p=q(ec,o),m=u.value===a,[h,g]=r.useState(c??""),[x,y]=r.useState(!1),w=(0,i.useComposedRefs)(n,e=>p.itemRefCallback?.(e,a,s)),S=(0,f.useId)(),b=r.useRef("touch"),C=()=>{s||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(ed,{scope:o,value:a,disabled:s,textId:S,isSelected:m,onItemTextChange:r.useCallback(e=>{g(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(N.ItemSlot,{scope:o,value:a,disabled:s,textValue:h,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":S,"data-highlighted":x?"":void 0,"aria-selected":m&&x,"data-state":m?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...d,ref:w,onFocus:(0,l.composeEventHandlers)(d.onFocus,()=>y(!0)),onBlur:(0,l.composeEventHandlers)(d.onBlur,()=>y(!1)),onClick:(0,l.composeEventHandlers)(d.onClick,()=>{"mouse"!==b.current&&C()}),onPointerUp:(0,l.composeEventHandlers)(d.onPointerUp,()=>{"mouse"===b.current&&C()}),onPointerDown:(0,l.composeEventHandlers)(d.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:(0,l.composeEventHandlers)(d.onPointerMove,e=>{b.current=e.pointerType,s?p.onItemLeave?.():"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,l.composeEventHandlers)(d.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,l.composeEventHandlers)(d.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(R.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});ep.displayName=ec;var ef="SelectItemText",em=r.forwardRef((e,o)=>{let{__scopeSelect:l,className:a,style:s,...c}=e,d=H(ef,l),u=q(ef,l),p=eu(ef,l),f=A(ef,l),[m,h]=r.useState(null),g=(0,i.useComposedRefs)(o,e=>h(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),x=m?.textContent,y=r.useMemo(()=>(0,t.jsx)("option",{value:p.value,disabled:p.disabled,children:x},p.value),[p.disabled,p.value,x]),{onNativeOptionAdd:S,onNativeOptionRemove:b}=f;return(0,w.useLayoutEffect)(()=>(S(y),()=>b(y)),[S,b,y]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:p.textId,...c,ref:g}),p.isSelected&&d.valueNode&&!d.valueNodeHasChildren?n.createPortal(c.children,d.valueNode):null]})});em.displayName=ef;var eh="SelectItemIndicator",ev=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return eu(eh,n).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...o,ref:r}):null});ev.displayName=eh;var eg="SelectScrollUpButton",ex=r.forwardRef((e,n)=>{let o=q(eg,e.__scopeSelect),l=ee(eg,e.__scopeSelect),[a,s]=r.useState(!1),c=(0,i.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){s(t.scrollTop>0)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),a?(0,t.jsx)(eS,{...e,ref:c,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=eg;var ey="SelectScrollDownButton",ew=r.forwardRef((e,n)=>{let o=q(ey,e.__scopeSelect),l=ee(ey,e.__scopeSelect),[a,s]=r.useState(!1),c=(0,i.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),a?(0,t.jsx)(eS,{...e,ref:c,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ew.displayName=ey;var eS=r.forwardRef((e,n)=>{let{__scopeSelect:o,onAutoScroll:a,...i}=e,s=q("SelectScrollButton",o),c=r.useRef(null),d=k(o),u=r.useCallback(()=>{null!==c.current&&(window.clearInterval(c.current),c.current=null)},[]);return r.useEffect(()=>()=>u(),[u]),(0,w.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...i,ref:n,style:{flexShrink:0,...i.style},onPointerDown:(0,l.composeEventHandlers)(i.onPointerDown,()=>{null===c.current&&(c.current=window.setInterval(a,50))}),onPointerMove:(0,l.composeEventHandlers)(i.onPointerMove,()=>{s.onItemLeave?.(),null===c.current&&(c.current=window.setInterval(a,50))}),onPointerLeave:(0,l.composeEventHandlers)(i.onPointerLeave,()=>{u()})})}),eb=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:r})});eb.displayName="SelectSeparator";var eC="SelectArrow",ej=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=L(n),a=H(eC,n),i=q(eC,n);return a.open&&"popper"===i.position?(0,t.jsx)(m.Arrow,{...l,...o,ref:r}):null});ej.displayName=eC;var eP=r.forwardRef(({__scopeSelect:e,value:n,...o},l)=>{let a=r.useRef(null),s=(0,i.useComposedRefs)(l,a),c=(0,S.usePrevious)(n);return r.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(c!==n&&t){let r=new Event("change",{bubbles:!0});t.call(e,n),e.dispatchEvent(r)}},[c,n]),(0,t.jsx)(v.Primitive.select,{...o,style:{...b.VISUALLY_HIDDEN_STYLES,...o.style},ref:s,defaultValue:n})});function eR(e){return""===e||void 0===e}function eE(e){let t=(0,x.useCallbackRef)(e),n=r.useRef(""),o=r.useRef(0),l=r.useCallback(e=>{let r=n.current+e;t(r),function e(t){n.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),a=r.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,l,a]}function eN(e,t,r){var n,o;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(n=e,o=Math.max(a,0),n.map((e,t)=>n[(o+t)%n.length]));1===l.length&&(i=i.filter(e=>e!==r));let s=i.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return s!==r?s:void 0}eP.displayName="SelectBubbleInput",e.s(["Arrow",0,ej,"Content",0,G,"Group",0,ea,"Icon",0,K,"Item",0,ep,"ItemIndicator",0,ev,"ItemText",0,em,"Label",0,es,"Portal",0,z,"Root",0,B,"ScrollDownButton",0,ew,"ScrollUpButton",0,ex,"Select",0,B,"SelectArrow",0,ej,"SelectContent",0,G,"SelectGroup",0,ea,"SelectIcon",0,K,"SelectItem",0,ep,"SelectItemIndicator",0,ev,"SelectItemText",0,em,"SelectLabel",0,es,"SelectPortal",0,z,"SelectScrollDownButton",0,ew,"SelectScrollUpButton",0,ex,"SelectSeparator",0,eb,"SelectTrigger",0,O,"SelectValue",0,U,"SelectViewport",0,er,"Separator",0,eb,"Trigger",0,O,"Value",0,U,"Viewport",0,er,"createSelectScope",0,D],74522);var ek=e.i(74522),ek=ek,eI=e.i(85149),eT=e.i(82479),eD=e.i(75767),eL=e.i(31777);let eM=ek.Root;ek.Group;let eH=ek.Value,e_=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(ek.Trigger,{ref:o,className:(0,eL.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[r,(0,t.jsx)(ek.Icon,{asChild:!0,children:(0,t.jsx)(eT.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));e_.displayName=ek.Trigger.displayName;let eA=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.ScrollUpButton,{ref:n,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eD.ChevronUp,{className:"h-4 w-4"})}));eA.displayName=ek.ScrollUpButton.displayName;let eB=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.ScrollDownButton,{ref:n,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eT.ChevronDown,{className:"h-4 w-4"})}));eB.displayName=ek.ScrollDownButton.displayName;let eF=r.forwardRef(({className:e,children:r,position:n="popper",...o},l)=>(0,t.jsx)(ek.Portal,{children:(0,t.jsxs)(ek.Content,{ref:l,className:(0,eL.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...o,children:[(0,t.jsx)(eA,{}),(0,t.jsx)(ek.Viewport,{className:(0,eL.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,t.jsx)(eB,{})]})}));eF.displayName=ek.Content.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.Label,{ref:n,className:(0,eL.cn)("px-2 py-1.5 text-sm font-semibold",e),...r})).displayName=ek.Label.displayName;let eO=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(ek.Item,{ref:o,className:(0,eL.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(ek.ItemIndicator,{children:(0,t.jsx)(eI.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(ek.ItemText,{children:r})]}));eO.displayName=ek.Item.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.Separator,{ref:n,className:(0,eL.cn)("bg-muted -mx-1 my-1 h-px",e),...r})).displayName=ek.Separator.displayName,e.s(["Select",0,eM,"SelectContent",0,eF,"SelectItem",0,eO,"SelectTrigger",0,e_,"SelectValue",0,eH],47373)},44802,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(26728);function o({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},70399,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},77622,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return s}});let n=e.r(96871),o=e.r(70309),l=e.r(5474),a=e.r(70399),i=e.r(58349);function s({moduleIds:e}){if("u">typeof window)return null;let t=l.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let c=(0,i.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},38762,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(96871),o=e.r(16539),l=e.r(44802),a=e.r(77622);function i(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...s,...e},r=(0,o.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,d=s?o.Suspense:o.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(d,{...s?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},52199,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(81258)._(e.r(38762));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13322,61201,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(52199),o=e.i(79561),l=e.i(60112),a=e.i(2287),i=e.i(35364);let s=(0,n.default)(()=>e.A(54625).then(e=>e.FileManager),{loadableGenerated:{modules:[19454]},ssr:!1,loading:()=>(0,t.jsx)(c,{})});function c(){return(0,t.jsx)("div",{className:"flex h-full w-full items-center justify-center",children:(0,t.jsx)(o.LoaderCircle,{className:"text-muted-foreground h-8 w-8 animate-spin"})})}async function d(e){let t=new URLSearchParams;e&&t.set("path",e);let r=await fetch(`/api/directory/list?${t.toString()}`);if(!r.ok)throw Error((await r.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return r.json()}e.s(["ReactFileManagerDialog",0,function({open:e,onOpenChange:n,onSelect:o,initialPath:c}){let[u,p]=(0,r.useState)([]),[f,m]=(0,r.useState)(""),[h,v]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),y=(0,r.useRef)(!1),w=(0,r.useCallback)(async e=>{v(!0),x(null);try{let t=await d(e);p(t.entries),m(t.currentPath)}catch(t){let e=t instanceof Error?t.message:"Failed to load directory";l.toast.error(e)}finally{v(!1)}},[]);(0,r.useEffect)(()=>{e&&!y.current&&(y.current=!0,w(c)),e||(y.current=!1)},[e,c,w]);let S=(0,r.useCallback)(e=>{let t=e.absolutePath;e.isDirectory&&t&&w(t)},[w]),b=(0,r.useCallback)(e=>{1===e.length&&e[0].isDirectory?x(e[0].absolutePath??null):x(null)},[]);function C(){o(null),n(!1)}return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>{e||C()},children:(0,t.jsxs)(a.DialogContent,{className:"flex h-[95dvh] max-w-[95vw] flex-col",onCloseAutoFocus:e=>e.preventDefault(),children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:"Select Folder"}),(0,t.jsx)(a.DialogDescription,{className:"truncate font-mono text-xs",children:f||"Loading..."})]}),(0,t.jsx)("div",{className:"shipit-ai-file-manager min-h-0 flex-1 overflow-hidden rounded-md border",children:(0,t.jsx)(s,{files:u.map(e=>({name:e.name,isDirectory:!0,path:`/${e.name}`,absolutePath:e.path,updatedAt:e.updatedAt})),isLoading:h,height:"100%",width:"100%",layout:"list",enableFilePreview:!1,permissions:{upload:!1,delete:!1,create:!1,download:!1,copy:!1,move:!1,rename:!1},onFileOpen:S,onSelectionChange:b,onRefresh:()=>w(f)},f)}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:C,children:"Cancel"}),(0,t.jsx)(i.Button,{variant:"secondary",onClick:function(){f&&(o(f),n(!1))},disabled:!f,children:"Select Current Folder"}),(0,t.jsx)(i.Button,{onClick:function(){g&&(o(g),n(!1))},disabled:!g,children:"Select Folder"})]})]})})}],61201),e.s([],13322)},78521,e=>{"use strict";var t=e.i(96976);let r=(0,t.createServerReference)("00ea228127ac18606161ce9cb8812c4f137123b655",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function n(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",0,n],78521)},8791,e=>{"use strict";let t=(0,e.i(54864).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);e.s(["GitFork",0,t],8791)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47373,27069,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(70309);function o(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",0,o],27069);var l=e.i(91967),a=e.i(87099),i=e.i(22353),s=e.i(9413),c=e.i(75649),d=e.i(3659),u=e.i(87656),p=e.i(62854),f=e.i(11207),m=e.i(73071),h=e.i(76903),v=e.i(85565),g=e.i(60310),x=e.i(88248),y=e.i(36567),w=e.i(18731),b=e.i(9641),S=e.i(87312),C=e.i(73772),j=e.i(69759),P=[" ","Enter","ArrowUp","ArrowDown"],R=[" ","Enter"],E="Select",[N,k,I]=(0,a.createCollection)(E),[T,D]=(0,s.createContextScope)(E,[I,m.createPopperScope]),L=(0,m.createPopperScope)(),[M,H]=T(E),[_,A]=T(E),B=e=>{let{__scopeSelect:n,children:o,open:l,defaultOpen:a,onOpenChange:i,value:s,defaultValue:d,onValueChange:u,dir:p,name:h,autoComplete:v,disabled:g,required:x,form:w}=e,b=L(n),[S,C]=r.useState(null),[j,P]=r.useState(null),[R,k]=r.useState(!1),I=(0,c.useDirection)(p),[T,D]=(0,y.useControllableState)({prop:l,defaultProp:a??!1,onChange:i,caller:E}),[H,A]=(0,y.useControllableState)({prop:s,defaultProp:d,onChange:u,caller:E}),B=r.useRef(null),F=!S||w||!!S.closest("form"),[O,V]=r.useState(new Set),U=Array.from(O).map(e=>e.props.value).join(";");return(0,t.jsx)(m.Root,{...b,children:(0,t.jsxs)(M,{required:x,scope:n,trigger:S,onTriggerChange:C,valueNode:j,onValueNodeChange:P,valueNodeHasChildren:R,onValueNodeHasChildrenChange:k,contentId:(0,f.useId)(),value:H,onValueChange:A,open:T,onOpenChange:D,dir:I,triggerPointerDownPosRef:B,disabled:g,children:[(0,t.jsx)(N.Provider,{scope:n,children:(0,t.jsx)(_,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{V(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{V(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:o})}),F?(0,t.jsxs)(eP,{"aria-hidden":!0,required:x,tabIndex:-1,name:h,autoComplete:v,value:H,onChange:e=>A(e.target.value),disabled:g,form:w,children:[void 0===H?(0,t.jsx)("option",{value:""}):null,Array.from(O)]},U):null]})})};B.displayName=E;var F="SelectTrigger",O=r.forwardRef((e,n)=>{let{__scopeSelect:o,disabled:a=!1,...s}=e,c=L(o),d=H(F,o),u=d.disabled||a,p=(0,i.useComposedRefs)(n,d.onTriggerChange),f=k(o),h=r.useRef("touch"),[g,x,y]=eE(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===d.value),n=eN(t,e,r);void 0!==n&&d.onValueChange(n.value)}),w=e=>{u||(d.onOpenChange(!0),y()),e&&(d.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(m.Anchor,{asChild:!0,...c,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":eR(d.value)?"":void 0,...s,ref:p,onClick:(0,l.composeEventHandlers)(s.onClick,e=>{e.currentTarget.focus(),"mouse"!==h.current&&w(e)}),onPointerDown:(0,l.composeEventHandlers)(s.onPointerDown,e=>{h.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,l.composeEventHandlers)(s.onKeyDown,e=>{let t=""!==g.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||x(e.key),(!t||" "!==e.key)&&P.includes(e.key)&&(w(),e.preventDefault())})})})});O.displayName=F;var V="SelectValue",U=r.forwardRef((e,r)=>{let{__scopeSelect:n,className:o,style:l,children:a,placeholder:s="",...c}=e,d=H(V,n),{onValueNodeHasChildrenChange:u}=d,p=void 0!==a,f=(0,i.useComposedRefs)(r,d.onValueNodeChange);return(0,w.useLayoutEffect)(()=>{u(p)},[u,p]),(0,t.jsx)(v.Primitive.span,{...c,ref:f,style:{pointerEvents:"none"},children:eR(d.value)?(0,t.jsx)(t.Fragment,{children:s}):a})});U.displayName=V;var K=r.forwardRef((e,r)=>{let{__scopeSelect:n,children:o,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:r,children:o||"▼"})});K.displayName="SelectIcon";var z=e=>(0,t.jsx)(h.Portal,{asChild:!0,...e});z.displayName="SelectPortal";var W="SelectContent",G=r.forwardRef((e,o)=>{let l=H(W,e.__scopeSelect),[a,i]=r.useState();return((0,w.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),l.open)?(0,t.jsx)(X,{...e,ref:o}):a?n.createPortal((0,t.jsx)($,{scope:e.__scopeSelect,children:(0,t.jsx)(N.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),a):null});G.displayName=W;var[$,q]=T(W),Y=(0,g.createSlot)("SelectContent.RemoveScroll"),X=r.forwardRef((e,n)=>{let{__scopeSelect:o,position:a="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:c,onPointerDownOutside:f,side:m,sideOffset:h,align:v,alignOffset:g,arrowPadding:x,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:P,...R}=e,E=H(W,o),[N,I]=r.useState(null),[T,D]=r.useState(null),L=(0,i.useComposedRefs)(n,e=>I(e)),[M,_]=r.useState(null),[A,B]=r.useState(null),F=k(o),[O,V]=r.useState(!1),U=r.useRef(!1);r.useEffect(()=>{if(N)return(0,C.hideOthers)(N)},[N]),(0,u.useFocusGuards)();let K=r.useCallback(e=>{let[t,...r]=F().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(r?.scrollIntoView({block:"nearest"}),r===t&&T&&(T.scrollTop=0),r===n&&T&&(T.scrollTop=T.scrollHeight),r?.focus(),document.activeElement!==o))return},[F,T]),z=r.useCallback(()=>K([M,N]),[K,M,N]);r.useEffect(()=>{O&&z()},[O,z]);let{onOpenChange:G,triggerPointerDownPosRef:q}=E;r.useEffect(()=>{if(N){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(q.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(q.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():N.contains(r.target)||G(!1),document.removeEventListener("pointermove",t),q.current=null};return null!==q.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[N,G,q]),r.useEffect(()=>{let e=()=>G(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[G]);let[X,J]=eE(e=>{let t=F().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eN(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),ee=r.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==E.value&&E.value===t||n)&&(_(e),n&&(U.current=!0))},[E.value]),et=r.useCallback(()=>N?.focus(),[N]),er=r.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==E.value&&E.value===t||n)&&B(e)},[E.value]),en="popper"===a?Z:Q,eo=en===Z?{side:m,sideOffset:h,align:v,alignOffset:g,arrowPadding:x,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:P}:{};return(0,t.jsx)($,{scope:o,content:N,viewport:T,onViewportChange:D,itemRefCallback:ee,selectedItem:M,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:z,selectedItemText:A,position:a,isPositioned:O,searchRef:X,children:(0,t.jsx)(j.RemoveScroll,{as:Y,allowPinchZoom:!0,children:(0,t.jsx)(p.FocusScope,{asChild:!0,trapped:E.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,l.composeEventHandlers)(s,e=>{E.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(d.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:(0,t.jsx)(en,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:e=>e.preventDefault(),...R,...eo,onPlaced:()=>V(!0),ref:L,style:{display:"flex",flexDirection:"column",outline:"none",...R.style},onKeyDown:(0,l.composeEventHandlers)(R.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||J(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>K(t)),e.preventDefault()}})})})})})})});X.displayName="SelectContentImpl";var Q=r.forwardRef((e,n)=>{let{__scopeSelect:l,onPlaced:a,...s}=e,c=H(W,l),d=q(W,l),[u,p]=r.useState(null),[f,m]=r.useState(null),h=(0,i.useComposedRefs)(n,e=>m(e)),g=k(l),x=r.useRef(!1),y=r.useRef(!0),{viewport:b,selectedItem:S,selectedItemText:C,focusSelectedItem:j}=d,P=r.useCallback(()=>{if(c.trigger&&c.valueNode&&u&&f&&b&&S&&C){let e=c.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=c.valueNode.getBoundingClientRect(),n=C.getBoundingClientRect();if("rtl"!==c.dir){let l=n.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,c=Math.max(s,t.width),d=o(a,[10,Math.max(10,window.innerWidth-10-c)]);u.style.minWidth=s+"px",u.style.left=d+"px"}else{let l=t.right-n.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,c=Math.max(s,t.width),d=o(a,[10,Math.max(10,window.innerWidth-10-c)]);u.style.minWidth=s+"px",u.style.right=d+"px"}let l=g(),i=window.innerHeight-20,s=b.scrollHeight,d=window.getComputedStyle(f),p=parseInt(d.borderTopWidth,10),m=parseInt(d.paddingTop,10),h=parseInt(d.borderBottomWidth,10),v=p+m+s+parseInt(d.paddingBottom,10)+h,y=Math.min(5*S.offsetHeight,v),w=window.getComputedStyle(b),j=parseInt(w.paddingTop,10),P=parseInt(w.paddingBottom,10),R=e.top+e.height/2-10,E=S.offsetHeight/2,N=p+m+(S.offsetTop+E);if(N<=R){let e=l.length>0&&S===l[l.length-1].ref.current;u.style.bottom="0px";let t=Math.max(i-R,E+(e?P:0)+(f.clientHeight-b.offsetTop-b.offsetHeight)+h);u.style.height=N+t+"px"}else{let e=l.length>0&&S===l[0].ref.current;u.style.top="0px";let t=Math.max(R,p+b.offsetTop+(e?j:0)+E);u.style.height=t+(v-N)+"px",b.scrollTop=N-R+b.offsetTop}u.style.margin="10px 0",u.style.minHeight=y+"px",u.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>x.current=!0)}},[g,c.trigger,c.valueNode,u,f,b,S,C,c.dir,a]);(0,w.useLayoutEffect)(()=>P(),[P]);let[R,E]=r.useState();(0,w.useLayoutEffect)(()=>{f&&E(window.getComputedStyle(f).zIndex)},[f]);let N=r.useCallback(e=>{e&&!0===y.current&&(P(),j?.(),y.current=!1)},[P,j]);return(0,t.jsx)(J,{scope:l,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:N,children:(0,t.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:(0,t.jsx)(v.Primitive.div,{...s,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});Q.displayName="SelectItemAlignedPosition";var Z=r.forwardRef((e,r)=>{let{__scopeSelect:n,align:o="start",collisionPadding:l=10,...a}=e,i=L(n);return(0,t.jsx)(m.Content,{...i,...a,ref:r,align:o,collisionPadding:l,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Z.displayName="SelectPopperPosition";var[J,ee]=T(W,{}),et="SelectViewport",er=r.forwardRef((e,n)=>{let{__scopeSelect:o,nonce:a,...s}=e,c=q(et,o),d=ee(et,o),u=(0,i.useComposedRefs)(n,c.onViewportChange),p=r.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,t.jsx)(N.Slot,{scope:o,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:(0,l.composeEventHandlers)(s.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=d;if(n?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o<n){let l=o+e,a=Math.min(n,l),i=l-a;r.style.height=a+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});er.displayName=et;var en="SelectGroup",[eo,el]=T(en),ea=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=(0,f.useId)();return(0,t.jsx)(eo,{scope:n,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...o,ref:r})})});ea.displayName=en;var ei="SelectLabel",es=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=el(ei,n);return(0,t.jsx)(v.Primitive.div,{id:l.id,...o,ref:r})});es.displayName=ei;var ec="SelectItem",[ed,eu]=T(ec),ep=r.forwardRef((e,n)=>{let{__scopeSelect:o,value:a,disabled:s=!1,textValue:c,...d}=e,u=H(ec,o),p=q(ec,o),m=u.value===a,[h,g]=r.useState(c??""),[x,y]=r.useState(!1),w=(0,i.useComposedRefs)(n,e=>p.itemRefCallback?.(e,a,s)),b=(0,f.useId)(),S=r.useRef("touch"),C=()=>{s||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(ed,{scope:o,value:a,disabled:s,textId:b,isSelected:m,onItemTextChange:r.useCallback(e=>{g(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(N.ItemSlot,{scope:o,value:a,disabled:s,textValue:h,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":x?"":void 0,"aria-selected":m&&x,"data-state":m?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...d,ref:w,onFocus:(0,l.composeEventHandlers)(d.onFocus,()=>y(!0)),onBlur:(0,l.composeEventHandlers)(d.onBlur,()=>y(!1)),onClick:(0,l.composeEventHandlers)(d.onClick,()=>{"mouse"!==S.current&&C()}),onPointerUp:(0,l.composeEventHandlers)(d.onPointerUp,()=>{"mouse"===S.current&&C()}),onPointerDown:(0,l.composeEventHandlers)(d.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,l.composeEventHandlers)(d.onPointerMove,e=>{S.current=e.pointerType,s?p.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,l.composeEventHandlers)(d.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,l.composeEventHandlers)(d.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(R.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});ep.displayName=ec;var ef="SelectItemText",em=r.forwardRef((e,o)=>{let{__scopeSelect:l,className:a,style:s,...c}=e,d=H(ef,l),u=q(ef,l),p=eu(ef,l),f=A(ef,l),[m,h]=r.useState(null),g=(0,i.useComposedRefs)(o,e=>h(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),x=m?.textContent,y=r.useMemo(()=>(0,t.jsx)("option",{value:p.value,disabled:p.disabled,children:x},p.value),[p.disabled,p.value,x]),{onNativeOptionAdd:b,onNativeOptionRemove:S}=f;return(0,w.useLayoutEffect)(()=>(b(y),()=>S(y)),[b,S,y]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:p.textId,...c,ref:g}),p.isSelected&&d.valueNode&&!d.valueNodeHasChildren?n.createPortal(c.children,d.valueNode):null]})});em.displayName=ef;var eh="SelectItemIndicator",ev=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return eu(eh,n).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...o,ref:r}):null});ev.displayName=eh;var eg="SelectScrollUpButton",ex=r.forwardRef((e,n)=>{let o=q(eg,e.__scopeSelect),l=ee(eg,e.__scopeSelect),[a,s]=r.useState(!1),c=(0,i.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){s(t.scrollTop>0)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),a?(0,t.jsx)(eb,{...e,ref:c,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=eg;var ey="SelectScrollDownButton",ew=r.forwardRef((e,n)=>{let o=q(ey,e.__scopeSelect),l=ee(ey,e.__scopeSelect),[a,s]=r.useState(!1),c=(0,i.useComposedRefs)(n,l.onScrollButtonChange);return(0,w.useLayoutEffect)(()=>{if(o.viewport&&o.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),a?(0,t.jsx)(eb,{...e,ref:c,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ew.displayName=ey;var eb=r.forwardRef((e,n)=>{let{__scopeSelect:o,onAutoScroll:a,...i}=e,s=q("SelectScrollButton",o),c=r.useRef(null),d=k(o),u=r.useCallback(()=>{null!==c.current&&(window.clearInterval(c.current),c.current=null)},[]);return r.useEffect(()=>()=>u(),[u]),(0,w.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...i,ref:n,style:{flexShrink:0,...i.style},onPointerDown:(0,l.composeEventHandlers)(i.onPointerDown,()=>{null===c.current&&(c.current=window.setInterval(a,50))}),onPointerMove:(0,l.composeEventHandlers)(i.onPointerMove,()=>{s.onItemLeave?.(),null===c.current&&(c.current=window.setInterval(a,50))}),onPointerLeave:(0,l.composeEventHandlers)(i.onPointerLeave,()=>{u()})})}),eS=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:r})});eS.displayName="SelectSeparator";var eC="SelectArrow",ej=r.forwardRef((e,r)=>{let{__scopeSelect:n,...o}=e,l=L(n),a=H(eC,n),i=q(eC,n);return a.open&&"popper"===i.position?(0,t.jsx)(m.Arrow,{...l,...o,ref:r}):null});ej.displayName=eC;var eP=r.forwardRef(({__scopeSelect:e,value:n,...o},l)=>{let a=r.useRef(null),s=(0,i.useComposedRefs)(l,a),c=(0,b.usePrevious)(n);return r.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(c!==n&&t){let r=new Event("change",{bubbles:!0});t.call(e,n),e.dispatchEvent(r)}},[c,n]),(0,t.jsx)(v.Primitive.select,{...o,style:{...S.VISUALLY_HIDDEN_STYLES,...o.style},ref:s,defaultValue:n})});function eR(e){return""===e||void 0===e}function eE(e){let t=(0,x.useCallbackRef)(e),n=r.useRef(""),o=r.useRef(0),l=r.useCallback(e=>{let r=n.current+e;t(r),function e(t){n.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),a=r.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,l,a]}function eN(e,t,r){var n,o;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(n=e,o=Math.max(a,0),n.map((e,t)=>n[(o+t)%n.length]));1===l.length&&(i=i.filter(e=>e!==r));let s=i.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return s!==r?s:void 0}eP.displayName="SelectBubbleInput",e.s(["Arrow",0,ej,"Content",0,G,"Group",0,ea,"Icon",0,K,"Item",0,ep,"ItemIndicator",0,ev,"ItemText",0,em,"Label",0,es,"Portal",0,z,"Root",0,B,"ScrollDownButton",0,ew,"ScrollUpButton",0,ex,"Select",0,B,"SelectArrow",0,ej,"SelectContent",0,G,"SelectGroup",0,ea,"SelectIcon",0,K,"SelectItem",0,ep,"SelectItemIndicator",0,ev,"SelectItemText",0,em,"SelectLabel",0,es,"SelectPortal",0,z,"SelectScrollDownButton",0,ew,"SelectScrollUpButton",0,ex,"SelectSeparator",0,eS,"SelectTrigger",0,O,"SelectValue",0,U,"SelectViewport",0,er,"Separator",0,eS,"Trigger",0,O,"Value",0,U,"Viewport",0,er,"createSelectScope",0,D],74522);var ek=e.i(74522),ek=ek,eI=e.i(85149),eT=e.i(82479),eD=e.i(75767),eL=e.i(31777);let eM=ek.Root;ek.Group;let eH=ek.Value,e_=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(ek.Trigger,{ref:o,className:(0,eL.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[r,(0,t.jsx)(ek.Icon,{asChild:!0,children:(0,t.jsx)(eT.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));e_.displayName=ek.Trigger.displayName;let eA=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.ScrollUpButton,{ref:n,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eD.ChevronUp,{className:"h-4 w-4"})}));eA.displayName=ek.ScrollUpButton.displayName;let eB=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.ScrollDownButton,{ref:n,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...r,children:(0,t.jsx)(eT.ChevronDown,{className:"h-4 w-4"})}));eB.displayName=ek.ScrollDownButton.displayName;let eF=r.forwardRef(({className:e,children:r,position:n="popper",...o},l)=>(0,t.jsx)(ek.Portal,{children:(0,t.jsxs)(ek.Content,{ref:l,className:(0,eL.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...o,children:[(0,t.jsx)(eA,{}),(0,t.jsx)(ek.Viewport,{className:(0,eL.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,t.jsx)(eB,{})]})}));eF.displayName=ek.Content.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.Label,{ref:n,className:(0,eL.cn)("px-2 py-1.5 text-sm font-semibold",e),...r})).displayName=ek.Label.displayName;let eO=r.forwardRef(({className:e,children:r,...n},o)=>(0,t.jsxs)(ek.Item,{ref:o,className:(0,eL.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(ek.ItemIndicator,{children:(0,t.jsx)(eI.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(ek.ItemText,{children:r})]}));eO.displayName=ek.Item.displayName,r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(ek.Separator,{ref:n,className:(0,eL.cn)("bg-muted -mx-1 my-1 h-px",e),...r})).displayName=ek.Separator.displayName,e.s(["Select",0,eM,"SelectContent",0,eF,"SelectItem",0,eO,"SelectTrigger",0,e_,"SelectValue",0,eH],47373)},44802,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(26728);function o({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},70399,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},77622,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return s}});let n=e.r(96871),o=e.r(70309),l=e.r(5474),a=e.r(70399),i=e.r(58349);function s({moduleIds:e}){if("u">typeof window)return null;let t=l.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let c=(0,i.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},38762,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(96871),o=e.r(16539),l=e.r(44802),a=e.r(77622);function i(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...s,...e},r=(0,o.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,d=s?o.Suspense:o.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(d,{...s?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},52199,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(81258)._(e.r(38762));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13322,61201,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(52199),o=e.i(79561),l=e.i(60112),a=e.i(2287),i=e.i(35364);let s=(0,n.default)(()=>e.A(54625).then(e=>e.FileManager),{loadableGenerated:{modules:[19454]},ssr:!1,loading:()=>(0,t.jsx)(c,{})});function c(){return(0,t.jsx)("div",{className:"flex h-full w-full items-center justify-center",children:(0,t.jsx)(o.LoaderCircle,{className:"text-muted-foreground h-8 w-8 animate-spin"})})}async function d(e){let t=new URLSearchParams;e&&t.set("path",e);let r=await fetch(`/api/directory/list?${t.toString()}`);if(!r.ok)throw Error((await r.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return r.json()}e.s(["ReactFileManagerDialog",0,function({open:e,onOpenChange:n,onSelect:o,initialPath:c}){let[u,p]=(0,r.useState)([]),[f,m]=(0,r.useState)(""),[h,v]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),y=(0,r.useRef)(!1),w=(0,r.useCallback)(async e=>{v(!0),x(null);try{let t=await d(e);p(t.entries),m(t.currentPath)}catch(t){let e=t instanceof Error?t.message:"Failed to load directory";l.toast.error(e)}finally{v(!1)}},[]);(0,r.useEffect)(()=>{e&&!y.current&&(y.current=!0,w(c)),e||(y.current=!1)},[e,c,w]);let b=(0,r.useCallback)(e=>{let t=e.absolutePath;e.isDirectory&&t&&w(t)},[w]),S=(0,r.useCallback)(e=>{1===e.length&&e[0].isDirectory?x(e[0].absolutePath??null):x(null)},[]);function C(){o(null),n(!1)}return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>{e||C()},children:(0,t.jsxs)(a.DialogContent,{className:"flex h-[95dvh] max-w-[95vw] flex-col",onCloseAutoFocus:e=>e.preventDefault(),children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:"Select Folder"}),(0,t.jsx)(a.DialogDescription,{className:"truncate font-mono text-xs",children:f||"Loading..."})]}),(0,t.jsx)("div",{className:"shipit-ai-file-manager min-h-0 flex-1 overflow-hidden rounded-md border",children:(0,t.jsx)(s,{files:u.map(e=>({name:e.name,isDirectory:!0,path:`/${e.name}`,absolutePath:e.path,updatedAt:e.updatedAt})),isLoading:h,height:"100%",width:"100%",layout:"list",enableFilePreview:!1,permissions:{upload:!1,delete:!1,create:!1,download:!1,copy:!1,move:!1,rename:!1},onFileOpen:b,onSelectionChange:S,onRefresh:()=>w(f)},f)}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:C,children:"Cancel"}),(0,t.jsx)(i.Button,{variant:"secondary",onClick:function(){f&&(o(f),n(!1))},disabled:!f,children:"Select Current Folder"}),(0,t.jsx)(i.Button,{onClick:function(){g&&(o(g),n(!1))},disabled:!g,children:"Select Folder"})]})]})})}],61201),e.s([],13322)},78521,e=>{"use strict";var t=e.i(96976);let r=(0,t.createServerReference)("0090338ccf5fa07afdb8e7be418d00bc55439e87cb",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function n(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",0,n],78521)},8791,e=>{"use strict";let t=(0,e.i(54864).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);e.s(["GitFork",0,t],8791)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(96871),r=e.i(16539),a=e.i(33109),s=e.i(60112),i=e.i(96976);let o=(0,i.createServerReference)("40878c40fdd8bf1158c65705e258db24c352cc63fa",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(26759);var n=e.i(97164);e.i(1650);var l=e.i(11495),d=e.i(45811),c=e.i(35364),p=e.i(41957),u=e.i(81846),h=e.i(2828),m=e.i(8361),x=e.i(30153);let f=(0,i.createServerReference)("4069f57f0d34e289af3cfa0734279177b177dd6959",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var g=e.i(42076);let b=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),j={allowPrd:!1,allowPlan:!1,allowMerge:!1};var v=e.i(82639),w=e.i(22570),C=e.i(45977),y=e.i(31777),D=e.i(48306),N=e.i(51911);e.i(50032);var T=e.i(86254),k=e.i(9749);function P({description:e,onDescriptionChange:a,attachments:s,onRemoveFile:i,onNotesChange:o,onPaste:l,onDragEnter:d,onDragLeave:c,onDragOver:u,onDrop:m,onAddFiles:x,isDragOver:f,uploadError:g,isPromptFocused:b,onPromptFocus:j,onPromptBlur:S,fast:F,onFastChange:E,pending:R,onPendingChange:L,overrideAgent:M,overrideModel:A,currentAgentType:I,currentModel:O,onAgentModelChange:z,isSubmitting:U}){let{t:B}=(0,n.useTranslation)("web"),_=(0,r.useRef)(null);return(0,t.jsxs)("div",{role:"region","aria-label":B("createDrawer.fileDropZone"),"data-drag-over":f?"true":"false",onDragEnter:d,onDragLeave:c,onDragOver:u,onDrop:m,className:(0,y.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",f&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(p.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:B("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:_,onFocus:j,onBlur:()=>{setTimeout(()=>{let e=_.current?.contains(document.activeElement),t=_.current?.querySelector('[aria-expanded="true"]')!==null;e||t||S()},0)},className:(0,y.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",b&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(D.Textarea,{id:"feature-description",placeholder:B("createDrawer.featurePlaceholder"),value:e,onChange:e=>a(e.target.value),onPaste:l,required:!0,disabled:U,"aria-invalid":!!g,"aria-describedby":g?"feature-upload-error":void 0,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:s.map(e=>(0,t.jsx)(T.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>i(e.id),disabled:U,loading:e.loading,notes:e.notes,onNotesChange:t=>o(e.id,t)},e.id))}),g?(0,t.jsx)("p",{id:"feature-upload-error",className:"text-destructive px-3 pb-2 text-xs",role:"alert",children:g}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(k.AgentModelPicker,{initialAgentType:M??I??"claude-code",initialModel:A??O??"claude-sonnet-4-6",mode:"override",onAgentModelChange:z,disabled:U,className:"w-55"}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"pending-mode",checked:R,onCheckedChange:L,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(C.Clock,{className:"h-3.5 w-3.5"}),B("createDrawer.pendingMode")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"fast-mode",checked:F,onCheckedChange:E,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(w.Zap,{className:"h-3.5 w-3.5"}),B("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:x,disabled:U,"aria-label":B("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(v.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("chat.attachFiles")})]})]})]})]})}var S=e.i(8791),F=e.i(13867),E=e.i(96612),R=e.i(27381),L=e.i(47373);let M=(0,i.createServerReference)("40f5d7c31967e1f2aba3b4d8dc6783df53c1d7fbf3",i.callServer,void 0,i.findSourceMapURL,"getAgentPermissionOptions"),A=["allowPrd","allowPlan","allowMerge"];function I({approvalGates:e,onApprovalGatesChange:r,enableEvidence:a,onEnableEvidenceChange:s,commitEvidence:i,onCommitEvidenceChange:o,push:l,onPushChange:d,openPr:c,onOpenPrChange:u,ciWatchEnabled:m,onCiWatchChange:x,rebaseBeforeBranch:f,onRebaseBeforeBranchChange:g,commitSpecs:b,onCommitSpecsChange:j,forkAndPr:v,onForkAndPrChange:w,canPush:C,fast:D,computedPush:T,computedOpenPr:k,isSubmitting:P,agentType:R,permissionMode:L,onPermissionModeChange:M}){let{t:z}=(0,n.useTranslation)("web"),U=[{id:"allowPrd",label:z("createDrawer.prd"),description:z("createDrawer.prdDescription")},{id:"allowPlan",label:z("createDrawer.plan"),description:z("createDrawer.planDescription")},{id:"allowMerge",label:z("createDrawer.merge"),description:z("createDrawer.mergeDescription")}];return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:z("createDrawer.approve")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:U.map(a=>(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:`approve-${a.id}`,size:"sm",checked:e[a.id]??!1,onCheckedChange:t=>r({...e,[a.id]:t}),disabled:P||D&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,t.jsx)(p.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:D&&("allowPrd"===a.id||"allowPlan"===a.id)?z("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=A.every(t=>e[t]),a={};for(let e of A)a[e]=!t;r(a)},disabled:P,className:(0,y.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",A.every(t=>e[t])&&"text-primary"),children:z("createDrawer.all")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:z("createDrawer.evidence")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"enable-evidence",size:"sm",checked:a,onCheckedChange:e=>{s(e),e||o(!1)},disabled:P}),(0,t.jsx)(p.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:z("createDrawer.collect")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.collectDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-evidence",size:"sm",checked:i,onCheckedChange:o,disabled:P||!a||!c&&!v}),(0,t.jsx)(p.Label,{htmlFor:"commit-evidence",className:(0,y.cn)("cursor-pointer text-xs font-medium",(!a||!c&&!v)&&"opacity-50"),children:z("createDrawer.addToPr")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:c||v?a?z("createDrawer.addToPrDescription"):z("createDrawer.requiresEvidence"):z("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:z("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"push",size:"sm",checked:T,onCheckedChange:e=>{d(e),!e&&c&&u(!1)},disabled:P||v}),(0,t.jsx)(p.Label,{htmlFor:"push",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:z("createDrawer.push")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":z("createDrawer.pushDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"open-pr",size:"sm",checked:k,onCheckedChange:e=>{u(e),e||o(!1)},disabled:P||v}),(0,t.jsx)(p.Label,{htmlFor:"open-pr",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:z("createDrawer.pr")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":z("createDrawer.prDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"ci-watch",size:"sm",checked:m,onCheckedChange:x,disabled:P}),(0,t.jsx)(p.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:z("createDrawer.watch")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"rebase-before-branch",size:"sm",checked:f,onCheckedChange:g,disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(E.RefreshCw,{className:"h-3 w-3"}),z("createDrawer.sync")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.syncDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-specs",size:"sm",checked:b,onCheckedChange:j,disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(F.FileText,{className:"h-3 w-3"}),z("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.commitSpecsDescription")})]}),!C&&(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"fork-and-pr",size:"sm",checked:v,onCheckedChange:e=>{w(e),e&&j(!1)},disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(S.GitFork,{className:"h-3 w-3"}),z("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.forkAndPrDescription")})]})]})]}),R&&M?(0,t.jsx)(O,{agentType:R,permissionMode:L,onPermissionModeChange:M,isSubmitting:P}):null]})}function O({agentType:e,permissionMode:a,onPermissionModeChange:s,isSubmitting:i}){let{t:o}=(0,n.useTranslation)("web"),[l,d]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let t=!1;return M(e).then(e=>{t||d(e)}),()=>{t=!0}},[e]),0===l.length)?null:(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-muted-foreground flex w-16 shrink-0 cursor-default items-center gap-1 text-xs font-semibold tracking-wider",children:[(0,t.jsx)(R.Shield,{className:"h-3 w-3"}),o("feature.create.permissionMode")]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:o("settings.agent.permissions.description",{agent:e})})]}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsxs)(L.Select,{value:a??"__default__",onValueChange:e=>s("__default__"===e?void 0:e),disabled:i,children:[(0,t.jsx)(L.SelectTrigger,{id:"permission-mode","data-testid":"permission-mode-select",className:"h-7 text-xs",children:(0,t.jsx)(L.SelectValue,{})}),(0,t.jsxs)(L.SelectContent,{children:[(0,t.jsx)(L.SelectItem,{value:"__default__",children:o("feature.create.permissionModeDefault")}),l.map(e=>(0,t.jsx)(L.SelectItem,{value:e.value,children:e.label},e.value))]})]})})]})}var z=e.i(56060),U=e.i(91653),B=e.i(98127),_=e.i(90382);function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),u=(0,r.useRef)(null),h=e.find(e=>e.id===a),m=c.trim()?e.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())||e.id.toLowerCase().includes(c.toLowerCase())):e,x=(0,r.useCallback)(e=>{s(e),d(!1),p("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>u.current?.focus(),0):p("")},[l]),(0,t.jsxs)(_.Popover,{open:l,onOpenChange:d,children:[(0,t.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!h&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:h?`${h.name} (${h.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(z.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(_.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(B.Input,{ref:u,placeholder:o("createDrawer.searchFeatures"),value:c,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>x(void 0),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===m.length&&c?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):m.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>x(e.id),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}var W=e.i(47930),$=e.i(79561),q=e.i(25235),K=e.i(75921),V=e.i(54852),Z=e.i(78521);e.i(13322);var J=e.i(61201);function H({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),[u,h]=(0,r.useState)(!1),[m,x]=(0,r.useState)(null),[f,g]=(0,r.useState)(!1),b=(0,r.useRef)(null),{reactFileManager:j}=(0,K.useFeatureFlags)(),{t:v}=(0,n.useTranslation)("web"),w=e.find(e=>e.path===a),C=c.trim()?e.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())||e.path.toLowerCase().includes(c.toLowerCase())):e,D=(0,r.useCallback)(e=>{s(e),d(!1),p("")},[s]),N=(0,r.useCallback)(async e=>{let t=await (0,V.addRepository)({path:e});if(t.error){x(t.error),h(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),d(!1),p("")}},[i,s]),T=(0,r.useCallback)(async()=>{if(!u){if(j)return void g(!0);h(!0),x(null);try{let e=await (0,Z.pickFolder)();if(!e)return void h(!1);await N(e)}catch{g(!0)}finally{h(!1)}}},[u,j,N]),k=(0,r.useCallback)(async e=>{if(g(!1),e){h(!0),x(null);try{await N(e)}catch(e){x(e instanceof Error?e.message:"Failed to add repository")}finally{h(!1)}}},[N]);return(0,r.useEffect)(()=>{l?setTimeout(()=>b.current?.focus(),0):p("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(_.Popover,{open:l,onOpenChange:d,children:[(0,t.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository","aria-invalid":!!m,"aria-describedby":m?"add-repository-error-msg":void 0,disabled:o,"data-testid":"repository-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,t.jsx)(z.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(_.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(B.Input,{ref:b,placeholder:v("createDrawer.searchRepositories"),value:c,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===C.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):C.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>D(e.path),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(q.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:T,disabled:u,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[u?(0,t.jsx)($.LoaderCircle,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(W.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),m?(0,t.jsx)("p",{id:"add-repository-error-msg",className:"px-3 pb-2 text-xs text-red-500",role:"alert","data-testid":"add-repository-error",children:m}):null]})})]}),(0,t.jsx)(J.ReactFileManagerDialog,{open:f,onOpenChange:e=>{e||g(!1)},onSelect:k})]})}function Q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:v,features:w,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:T,canPushDirectly:k}){let{t:S}=(0,n.useTranslation)("web"),F=function({open:e,onClose:t,onSubmit:a,repositoryPath:s,workflowDefaults:i,repositories:o,initialParentId:n,currentAgentType:l,currentModel:d,initialDescription:c,canPushDirectly:p}){let u=(0,m.useSoundAction)("create"),h=s&&(!o||0===o.length||o.some(e=>e.path===s))?s:"",v=i?.approvalGates??j,w=i?.push??!1,C=i?.openPr??!1,y=i?.ciWatchEnabled!==!1,D=i?.enableEvidence??!1,N=i?.commitEvidence??!1,T=i?.fast!==!1,[k,P]=(0,r.useState)(c??"");(0,r.useEffect)(()=>{c&&P(c)},[c]);let[S,F]=(0,r.useState)([]),[E,R]=(0,r.useState)({...v}),[L,M]=(0,r.useState)(w),[A,I]=(0,r.useState)(C),[O,z]=(0,r.useState)(i?.ciWatchEnabled!==!1),[U,B]=(0,r.useState)(D),[_,G]=(0,r.useState)(N),[W,$]=(0,r.useState)(void 0),[q,K]=(0,r.useState)(T),[V,Z]=(0,r.useState)(!1),[J,H]=(0,r.useState)(!1),[Q,X]=(0,r.useState)(!0),[Y,ee]=(0,r.useState)(!0),[et,er]=(0,r.useState)(void 0),[ea,es]=(0,r.useState)(void 0),[ei,eo]=(0,r.useState)(void 0),[en,el]=(0,r.useState)(h||void 0),[ed,ec]=(0,r.useState)(o??[]),[ep,eu]=(0,r.useState)(!1),[eh,em]=(0,r.useState)(null),[ex,ef]=(0,r.useState)(!1),eg=(0,r.useRef)(crypto.randomUUID()),eb=(0,r.useRef)(0);(0,r.useEffect)(()=>{i&&(R({...i.approvalGates}),M(i.push),I(i.openPr),z(!1!==i.ciWatchEnabled),B(i.enableEvidence),G(i.commitEvidence),K(!1!==i.fast))},[i]),(0,r.useEffect)(()=>{ec(o??[])},[o]),(0,r.useEffect)(()=>{e&&n&&$(n)},[e,n]);let[ej,ev]=(0,r.useState)(p??!1);(0,r.useEffect)(()=>{ev(p??!1)},[p]);let ew=(0,r.useRef)(en);(0,r.useEffect)(()=>{en&&en!==ew.current&&(ew.current=en,f(en).then(e=>ev(e.canPushDirectly)).catch(()=>ev(!1)))},[en]),(0,r.useEffect)(()=>{ej&&(H(!1),M(w),I(C),X(!0))},[ej,w,C]);let eC=(0,r.useCallback)(()=>{P(""),F([]),R({...v}),M(w),I(C),z(y),B(D),G(N),$(void 0),el(h||void 0),ec(o??[]),K(T),Z(!1),H(!1),X(!0),ee(!0),er(void 0),es(void 0),eo(void 0),em(null),eb.current=0,eu(!1)},[v,w,C,D,y,N,T,h,o]),ey=""!==k.trim()||S.length>0,{attemptClose:eD}=(0,x.useGuardedDrawerClose)({open:e,isDirty:ey,onClose:t,onReset:eC}),eN=(0,r.useCallback)(async e=>{for(let t of(em(null),e)){if(t.size>0xa00000)return void em(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!b.has(e))return void em(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eg.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),em(t.error??"Upload failed");return}let s=await a.json();F(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),em("Upload failed")}}},[]),eT=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current+=1,1===eb.current&&eu(!0)},[]),ek=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current-=1,0===eb.current&&eu(!1)},[]),eP=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eS=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current=0,eu(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eN(t)},[eN]),eF=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eN(r))},[eN]),eE=(0,r.useCallback)(e=>{if(e.preventDefault(),!k.trim())return;let t=en??h;t&&(u.play(),a({description:k.trim(),attachments:S.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:!!J||L||A,openPr:!!J||A,ciWatchEnabled:O,enableEvidence:U,commitEvidence:_,fast:q,forkAndPr:J,commitSpecs:Q,rebaseBeforeBranch:Y,...V?{pending:V}:{},...et?{agentType:et}:{},...ea?{model:ea}:{},...ei?{permissionMode:ei}:{},...W?{parentId:W}:{},sessionId:eg.current}),eC())},[k,S,E,en,h,a,L,A,U,O,_,q,J,Q,Y,V,et,ea,ei,W,u,eC]),eR=(0,r.useCallback)(async()=>{try{let e=await (0,g.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eg.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),em(t.error??"Upload failed");return}let a=await r.json();F(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),em("Upload failed")}}}catch{}},[]),eL=(0,r.useCallback)(e=>{F(t=>t.filter(t=>t.id!==e))},[]),eM=(0,r.useCallback)((e,t)=>{F(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]);return{validRepoPath:h,canPush:ej,isDirty:ey,computedPush:!!J||L||A,computedOpenPr:!!J||A,description:k,setDescription:P,attachments:S,approvalGates:E,setApprovalGates:R,push:L,setPush:M,openPr:A,setOpenPr:I,ciWatchEnabled:O,setCiWatchEnabled:z,enableEvidence:U,setEnableEvidence:B,commitEvidence:_,setCommitEvidence:G,parentId:W,setParentId:$,fast:q,setFast:K,pending:V,setPending:Z,forkAndPr:J,setForkAndPr:H,commitSpecs:Q,setCommitSpecs:X,rebaseBeforeBranch:Y,setRebaseBeforeBranch:ee,overrideAgent:et,setOverrideAgent:er,overrideModel:ea,setOverrideModel:es,permissionMode:ei,setPermissionMode:eo,selectedRepoPath:en,setSelectedRepoPath:el,localRepos:ed,setLocalRepos:ec,isDragOver:ep,uploadError:eh,isPromptFocused:ex,setIsPromptFocused:ef,sessionIdRef:eg,currentAgentType:l,currentModel:d,attemptClose:eD,handleFiles:eN,handleDragEnter:eT,handleDragLeave:ek,handleDragOver:eP,handleDrop:eS,handlePaste:eF,handleSubmit:eE,handleAddFiles:eR,handleRemoveFile:eL,handleNotesChange:eM,resetForm:eC}}({open:e,onClose:a,onSubmit:s,repositoryPath:i,workflowDefaults:v,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:T,canPushDirectly:k}),E=(0,r.useRef)(null),R=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),E.current?.requestSubmit())},[]),L=w&&w.length>0,M=!F.validRepoPath&&void 0!==C,A=!F.validRepoPath&&!F.selectedRepoPath;return(0,t.jsx)(l.BaseDrawer,{open:e,onClose:F.attemptClose,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(d.DrawerTitle,{children:S("createDrawer.title")})]}),o?(0,t.jsx)(d.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(u.Badge,{variant:"secondary",children:S("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:F.attemptClose,disabled:o,children:S("createDrawer.cancel")}),(0,t.jsx)(c.Button,{type:"submit",form:"create-feature-form",disabled:!F.description.trim()||o||A,children:S(o?"createDrawer.creating":"createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(h.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:E,id:"create-feature-form",onSubmit:F.handleSubmit,onKeyDown:R,className:"flex flex-col gap-4",children:[M?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)(H,{repositories:F.localRepos,value:F.selectedRepoPath,onChange:F.setSelectedRepoPath,onAddRepository:e=>{F.setLocalRepos(t=>[...t,e]),F.setSelectedRepoPath(e.path)},disabled:o})]}):F.validRepoPath?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:C?.find(e=>e.path===F.validRepoPath)?.name??F.validRepoPath.split("/").pop()})]}):null,(0,t.jsx)(P,{description:F.description,onDescriptionChange:F.setDescription,attachments:F.attachments,onRemoveFile:F.handleRemoveFile,onNotesChange:F.handleNotesChange,onPaste:F.handlePaste,onDragEnter:F.handleDragEnter,onDragLeave:F.handleDragLeave,onDragOver:F.handleDragOver,onDrop:F.handleDrop,onAddFiles:F.handleAddFiles,isDragOver:F.isDragOver,uploadError:F.uploadError,isPromptFocused:F.isPromptFocused,onPromptFocus:()=>F.setIsPromptFocused(!0),onPromptBlur:()=>F.setIsPromptFocused(!1),fast:F.fast,onFastChange:F.setFast,pending:F.pending,onPendingChange:F.setPending,overrideAgent:F.overrideAgent,overrideModel:F.overrideModel,currentAgentType:D,currentModel:N,onAgentModelChange:(e,t)=>{F.setOverrideAgent(e),F.setOverrideModel(t)},isSubmitting:o}),L&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(p.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:w,value:F.parentId,onChange:F.setParentId,disabled:o})]}):null,(0,t.jsx)(I,{approvalGates:F.approvalGates,onApprovalGatesChange:F.setApprovalGates,enableEvidence:F.enableEvidence,onEnableEvidenceChange:F.setEnableEvidence,commitEvidence:F.commitEvidence,onCommitEvidenceChange:F.setCommitEvidence,push:F.push,onPushChange:F.setPush,openPr:F.openPr,onOpenPrChange:F.setOpenPr,ciWatchEnabled:F.ciWatchEnabled,onCiWatchChange:F.setCiWatchEnabled,rebaseBeforeBranch:F.rebaseBeforeBranch,onRebaseBeforeBranchChange:F.setRebaseBeforeBranch,commitSpecs:F.commitSpecs,onCommitSpecsChange:F.setCommitSpecs,forkAndPr:F.forkAndPr,onForkAndPrChange:F.setForkAndPr,canPush:F.canPush,fast:F.fast,computedPush:F.computedPush,computedOpenPr:F.computedOpenPr,isSubmitting:o,agentType:F.overrideAgent??D,permissionMode:F.permissionMode,onPermissionModeChange:F.setPermissionMode})]})})})})}e.s(["CreateDrawerClient",0,function({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:d,workflowDefaults:c,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),g=(0,a.usePathname)().startsWith("/create"),b=!x&&g;(0,r.useEffect)(()=>{!g&&x&&f(!1)},[g,x]);let j=(0,r.useCallback)(()=>{m.push("/")},[m]),v=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shipit-ai:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(Q,{open:b,onClose:j,onSubmit:v,repositoryPath:e,features:l,repositories:d,workflowDefaults:c,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}],15203)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(96871),r=e.i(16539),a=e.i(33109),s=e.i(60112),i=e.i(96976);let o=(0,i.createServerReference)("40d52ef8963e73f4c49c578511b667815e9c094aad",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(26759);var n=e.i(97164);e.i(1650);var l=e.i(11495),d=e.i(45811),c=e.i(35364),p=e.i(41957),u=e.i(81846),h=e.i(2828),m=e.i(8361),x=e.i(30153);let f=(0,i.createServerReference)("40b045d24f72856e1241d2b375027f5604fb4d987b",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var g=e.i(42076);let b=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),j={allowPrd:!1,allowPlan:!1,allowMerge:!1};var v=e.i(82639),w=e.i(22570),C=e.i(45977),y=e.i(31777),D=e.i(48306),N=e.i(51911);e.i(50032);var T=e.i(86254),k=e.i(9749);function P({description:e,onDescriptionChange:a,attachments:s,onRemoveFile:i,onNotesChange:o,onPaste:l,onDragEnter:d,onDragLeave:c,onDragOver:u,onDrop:m,onAddFiles:x,isDragOver:f,uploadError:g,isPromptFocused:b,onPromptFocus:j,onPromptBlur:S,fast:F,onFastChange:E,pending:R,onPendingChange:L,overrideAgent:M,overrideModel:A,currentAgentType:I,currentModel:O,onAgentModelChange:z,isSubmitting:U}){let{t:B}=(0,n.useTranslation)("web"),_=(0,r.useRef)(null);return(0,t.jsxs)("div",{role:"region","aria-label":B("createDrawer.fileDropZone"),"data-drag-over":f?"true":"false",onDragEnter:d,onDragLeave:c,onDragOver:u,onDrop:m,className:(0,y.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",f&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(p.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:B("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:_,onFocus:j,onBlur:()=>{setTimeout(()=>{let e=_.current?.contains(document.activeElement),t=_.current?.querySelector('[aria-expanded="true"]')!==null;e||t||S()},0)},className:(0,y.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",b&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(D.Textarea,{id:"feature-description",placeholder:B("createDrawer.featurePlaceholder"),value:e,onChange:e=>a(e.target.value),onPaste:l,required:!0,disabled:U,"aria-invalid":!!g,"aria-describedby":g?"feature-upload-error":void 0,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:s.map(e=>(0,t.jsx)(T.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>i(e.id),disabled:U,loading:e.loading,notes:e.notes,onNotesChange:t=>o(e.id,t)},e.id))}),g?(0,t.jsx)("p",{id:"feature-upload-error",className:"text-destructive px-3 pb-2 text-xs",role:"alert",children:g}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(k.AgentModelPicker,{initialAgentType:M??I??"claude-code",initialModel:A??O??"claude-sonnet-4-6",mode:"override",onAgentModelChange:z,disabled:U,className:"w-55"}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"pending-mode",checked:R,onCheckedChange:L,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(C.Clock,{className:"h-3.5 w-3.5"}),B("createDrawer.pendingMode")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"fast-mode",checked:F,onCheckedChange:E,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(w.Zap,{className:"h-3.5 w-3.5"}),B("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:x,disabled:U,"aria-label":B("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(v.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:B("chat.attachFiles")})]})]})]})]})}var S=e.i(8791),F=e.i(13867),E=e.i(96612),R=e.i(27381),L=e.i(47373);let M=(0,i.createServerReference)("4054c0f16e73d7d7962ab8ab99395a1d269c3a2233",i.callServer,void 0,i.findSourceMapURL,"getAgentPermissionOptions"),A=["allowPrd","allowPlan","allowMerge"];function I({approvalGates:e,onApprovalGatesChange:r,enableEvidence:a,onEnableEvidenceChange:s,commitEvidence:i,onCommitEvidenceChange:o,push:l,onPushChange:d,openPr:c,onOpenPrChange:u,ciWatchEnabled:m,onCiWatchChange:x,rebaseBeforeBranch:f,onRebaseBeforeBranchChange:g,commitSpecs:b,onCommitSpecsChange:j,forkAndPr:v,onForkAndPrChange:w,canPush:C,fast:D,computedPush:T,computedOpenPr:k,isSubmitting:P,agentType:R,permissionMode:L,onPermissionModeChange:M}){let{t:z}=(0,n.useTranslation)("web"),U=[{id:"allowPrd",label:z("createDrawer.prd"),description:z("createDrawer.prdDescription")},{id:"allowPlan",label:z("createDrawer.plan"),description:z("createDrawer.planDescription")},{id:"allowMerge",label:z("createDrawer.merge"),description:z("createDrawer.mergeDescription")}];return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:z("createDrawer.approve")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:U.map(a=>(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:`approve-${a.id}`,size:"sm",checked:e[a.id]??!1,onCheckedChange:t=>r({...e,[a.id]:t}),disabled:P||D&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,t.jsx)(p.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:D&&("allowPrd"===a.id||"allowPlan"===a.id)?z("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=A.every(t=>e[t]),a={};for(let e of A)a[e]=!t;r(a)},disabled:P,className:(0,y.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",A.every(t=>e[t])&&"text-primary"),children:z("createDrawer.all")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:z("createDrawer.evidence")})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"enable-evidence",size:"sm",checked:a,onCheckedChange:e=>{s(e),e||o(!1)},disabled:P}),(0,t.jsx)(p.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:z("createDrawer.collect")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.collectDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-evidence",size:"sm",checked:i,onCheckedChange:o,disabled:P||!a||!c&&!v}),(0,t.jsx)(p.Label,{htmlFor:"commit-evidence",className:(0,y.cn)("cursor-pointer text-xs font-medium",(!a||!c&&!v)&&"opacity-50"),children:z("createDrawer.addToPr")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:c||v?a?z("createDrawer.addToPrDescription"):z("createDrawer.requiresEvidence"):z("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:z("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"push",size:"sm",checked:T,onCheckedChange:e=>{d(e),!e&&c&&u(!1)},disabled:P||v}),(0,t.jsx)(p.Label,{htmlFor:"push",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:z("createDrawer.push")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":z("createDrawer.pushDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"open-pr",size:"sm",checked:k,onCheckedChange:e=>{u(e),e||o(!1)},disabled:P||v}),(0,t.jsx)(p.Label,{htmlFor:"open-pr",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:z("createDrawer.pr")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":z("createDrawer.prDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"ci-watch",size:"sm",checked:m,onCheckedChange:x,disabled:P}),(0,t.jsx)(p.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:z("createDrawer.watch")})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"rebase-before-branch",size:"sm",checked:f,onCheckedChange:g,disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(E.RefreshCw,{className:"h-3 w-3"}),z("createDrawer.sync")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.syncDescription")})]}),(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-specs",size:"sm",checked:b,onCheckedChange:j,disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(F.FileText,{className:"h-3 w-3"}),z("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.commitSpecsDescription")})]}),!C&&(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"fork-and-pr",size:"sm",checked:v,onCheckedChange:e=>{w(e),e&&j(!1)},disabled:P}),(0,t.jsxs)(p.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(S.GitFork,{className:"h-3 w-3"}),z("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:z("createDrawer.forkAndPrDescription")})]})]})]}),R&&M?(0,t.jsx)(O,{agentType:R,permissionMode:L,onPermissionModeChange:M,isSubmitting:P}):null]})}function O({agentType:e,permissionMode:a,onPermissionModeChange:s,isSubmitting:i}){let{t:o}=(0,n.useTranslation)("web"),[l,d]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let t=!1;return M(e).then(e=>{t||d(e)}),()=>{t=!0}},[e]),0===l.length)?null:(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(h.Tooltip,{children:[(0,t.jsx)(h.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-muted-foreground flex w-16 shrink-0 cursor-default items-center gap-1 text-xs font-semibold tracking-wider",children:[(0,t.jsx)(R.Shield,{className:"h-3 w-3"}),o("feature.create.permissionMode")]})}),(0,t.jsx)(h.TooltipContent,{side:"bottom",children:o("settings.agent.permissions.description",{agent:e})})]}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsxs)(L.Select,{value:a??"__default__",onValueChange:e=>s("__default__"===e?void 0:e),disabled:i,children:[(0,t.jsx)(L.SelectTrigger,{id:"permission-mode","data-testid":"permission-mode-select",className:"h-7 text-xs",children:(0,t.jsx)(L.SelectValue,{})}),(0,t.jsxs)(L.SelectContent,{children:[(0,t.jsx)(L.SelectItem,{value:"__default__",children:o("feature.create.permissionModeDefault")}),l.map(e=>(0,t.jsx)(L.SelectItem,{value:e.value,children:e.label},e.value))]})]})})]})}var z=e.i(56060),U=e.i(91653),B=e.i(98127),_=e.i(90382);function G({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),u=(0,r.useRef)(null),h=e.find(e=>e.id===a),m=c.trim()?e.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())||e.id.toLowerCase().includes(c.toLowerCase())):e,x=(0,r.useCallback)(e=>{s(e),d(!1),p("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>u.current?.focus(),0):p("")},[l]),(0,t.jsxs)(_.Popover,{open:l,onOpenChange:d,children:[(0,t.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!h&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:h?`${h.name} (${h.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(z.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(_.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(B.Input,{ref:u,placeholder:o("createDrawer.searchFeatures"),value:c,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>x(void 0),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===m.length&&c?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):m.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>x(e.id),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}var W=e.i(47930),$=e.i(79561),q=e.i(25235),K=e.i(75921),V=e.i(92664),Z=e.i(78521);e.i(13322);var J=e.i(61201);function H({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(""),[u,h]=(0,r.useState)(!1),[m,x]=(0,r.useState)(null),[f,g]=(0,r.useState)(!1),b=(0,r.useRef)(null),{reactFileManager:j}=(0,K.useFeatureFlags)(),{t:v}=(0,n.useTranslation)("web"),w=e.find(e=>e.path===a),C=c.trim()?e.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())||e.path.toLowerCase().includes(c.toLowerCase())):e,D=(0,r.useCallback)(e=>{s(e),d(!1),p("")},[s]),N=(0,r.useCallback)(async e=>{let t=await (0,V.addRepository)({path:e});if(t.error){x(t.error),h(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),d(!1),p("")}},[i,s]),T=(0,r.useCallback)(async()=>{if(!u){if(j)return void g(!0);h(!0),x(null);try{let e=await (0,Z.pickFolder)();if(!e)return void h(!1);await N(e)}catch{g(!0)}finally{h(!1)}}},[u,j,N]),k=(0,r.useCallback)(async e=>{if(g(!1),e){h(!0),x(null);try{await N(e)}catch(e){x(e instanceof Error?e.message:"Failed to add repository")}finally{h(!1)}}},[N]);return(0,r.useEffect)(()=>{l?setTimeout(()=>b.current?.focus(),0):p("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(_.Popover,{open:l,onOpenChange:d,children:[(0,t.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository","aria-invalid":!!m,"aria-describedby":m?"add-repository-error-msg":void 0,disabled:o,"data-testid":"repository-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,t.jsx)(z.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(_.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(B.Input,{ref:b,placeholder:v("createDrawer.searchRepositories"),value:c,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===C.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):C.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>D(e.path),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(U.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(q.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:T,disabled:u,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[u?(0,t.jsx)($.LoaderCircle,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(W.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),m?(0,t.jsx)("p",{id:"add-repository-error-msg",className:"px-3 pb-2 text-xs text-red-500",role:"alert","data-testid":"add-repository-error",children:m}):null]})})]}),(0,t.jsx)(J.ReactFileManagerDialog,{open:f,onOpenChange:e=>{e||g(!1)},onSelect:k})]})}function Q({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:v,features:w,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:T,canPushDirectly:k}){let{t:S}=(0,n.useTranslation)("web"),F=function({open:e,onClose:t,onSubmit:a,repositoryPath:s,workflowDefaults:i,repositories:o,initialParentId:n,currentAgentType:l,currentModel:d,initialDescription:c,canPushDirectly:p}){let u=(0,m.useSoundAction)("create"),h=s&&(!o||0===o.length||o.some(e=>e.path===s))?s:"",v=i?.approvalGates??j,w=i?.push??!1,C=i?.openPr??!1,y=i?.ciWatchEnabled!==!1,D=i?.enableEvidence??!1,N=i?.commitEvidence??!1,T=i?.fast!==!1,[k,P]=(0,r.useState)(c??"");(0,r.useEffect)(()=>{c&&P(c)},[c]);let[S,F]=(0,r.useState)([]),[E,R]=(0,r.useState)({...v}),[L,M]=(0,r.useState)(w),[A,I]=(0,r.useState)(C),[O,z]=(0,r.useState)(i?.ciWatchEnabled!==!1),[U,B]=(0,r.useState)(D),[_,G]=(0,r.useState)(N),[W,$]=(0,r.useState)(void 0),[q,K]=(0,r.useState)(T),[V,Z]=(0,r.useState)(!1),[J,H]=(0,r.useState)(!1),[Q,X]=(0,r.useState)(!0),[Y,ee]=(0,r.useState)(!0),[et,er]=(0,r.useState)(void 0),[ea,es]=(0,r.useState)(void 0),[ei,eo]=(0,r.useState)(void 0),[en,el]=(0,r.useState)(h||void 0),[ed,ec]=(0,r.useState)(o??[]),[ep,eu]=(0,r.useState)(!1),[eh,em]=(0,r.useState)(null),[ex,ef]=(0,r.useState)(!1),eg=(0,r.useRef)(crypto.randomUUID()),eb=(0,r.useRef)(0);(0,r.useEffect)(()=>{i&&(R({...i.approvalGates}),M(i.push),I(i.openPr),z(!1!==i.ciWatchEnabled),B(i.enableEvidence),G(i.commitEvidence),K(!1!==i.fast))},[i]),(0,r.useEffect)(()=>{ec(o??[])},[o]),(0,r.useEffect)(()=>{e&&n&&$(n)},[e,n]);let[ej,ev]=(0,r.useState)(p??!1);(0,r.useEffect)(()=>{ev(p??!1)},[p]);let ew=(0,r.useRef)(en);(0,r.useEffect)(()=>{en&&en!==ew.current&&(ew.current=en,f(en).then(e=>ev(e.canPushDirectly)).catch(()=>ev(!1)))},[en]),(0,r.useEffect)(()=>{ej&&(H(!1),M(w),I(C),X(!0))},[ej,w,C]);let eC=(0,r.useCallback)(()=>{P(""),F([]),R({...v}),M(w),I(C),z(y),B(D),G(N),$(void 0),el(h||void 0),ec(o??[]),K(T),Z(!1),H(!1),X(!0),ee(!0),er(void 0),es(void 0),eo(void 0),em(null),eb.current=0,eu(!1)},[v,w,C,D,y,N,T,h,o]),ey=""!==k.trim()||S.length>0,{attemptClose:eD}=(0,x.useGuardedDrawerClose)({open:e,isDirty:ey,onClose:t,onReset:eC}),eN=(0,r.useCallback)(async e=>{for(let t of(em(null),e)){if(t.size>0xa00000)return void em(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!b.has(e))return void em(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",eg.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),em(t.error??"Upload failed");return}let s=await a.json();F(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),em("Upload failed")}}},[]),eT=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current+=1,1===eb.current&&eu(!0)},[]),ek=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current-=1,0===eb.current&&eu(!1)},[]),eP=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eS=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),eb.current=0,eu(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&eN(t)},[eN]),eF=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),eN(r))},[eN]),eE=(0,r.useCallback)(e=>{if(e.preventDefault(),!k.trim())return;let t=en??h;t&&(u.play(),a({description:k.trim(),attachments:S.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:!!J||L||A,openPr:!!J||A,ciWatchEnabled:O,enableEvidence:U,commitEvidence:_,fast:q,forkAndPr:J,commitSpecs:Q,rebaseBeforeBranch:Y,...V?{pending:V}:{},...et?{agentType:et}:{},...ea?{model:ea}:{},...ei?{permissionMode:ei}:{},...W?{parentId:W}:{},sessionId:eg.current}),eC())},[k,S,E,en,h,a,L,A,U,O,_,q,J,Q,Y,V,et,ea,ei,W,u,eC]),eR=(0,r.useCallback)(async()=>{try{let e=await (0,g.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:eg.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),em(t.error??"Upload failed");return}let a=await r.json();F(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),em("Upload failed")}}}catch{}},[]),eL=(0,r.useCallback)(e=>{F(t=>t.filter(t=>t.id!==e))},[]),eM=(0,r.useCallback)((e,t)=>{F(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]);return{validRepoPath:h,canPush:ej,isDirty:ey,computedPush:!!J||L||A,computedOpenPr:!!J||A,description:k,setDescription:P,attachments:S,approvalGates:E,setApprovalGates:R,push:L,setPush:M,openPr:A,setOpenPr:I,ciWatchEnabled:O,setCiWatchEnabled:z,enableEvidence:U,setEnableEvidence:B,commitEvidence:_,setCommitEvidence:G,parentId:W,setParentId:$,fast:q,setFast:K,pending:V,setPending:Z,forkAndPr:J,setForkAndPr:H,commitSpecs:Q,setCommitSpecs:X,rebaseBeforeBranch:Y,setRebaseBeforeBranch:ee,overrideAgent:et,setOverrideAgent:er,overrideModel:ea,setOverrideModel:es,permissionMode:ei,setPermissionMode:eo,selectedRepoPath:en,setSelectedRepoPath:el,localRepos:ed,setLocalRepos:ec,isDragOver:ep,uploadError:eh,isPromptFocused:ex,setIsPromptFocused:ef,sessionIdRef:eg,currentAgentType:l,currentModel:d,attemptClose:eD,handleFiles:eN,handleDragEnter:eT,handleDragLeave:ek,handleDragOver:eP,handleDrop:eS,handlePaste:eF,handleSubmit:eE,handleAddFiles:eR,handleRemoveFile:eL,handleNotesChange:eM,resetForm:eC}}({open:e,onClose:a,onSubmit:s,repositoryPath:i,workflowDefaults:v,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:T,canPushDirectly:k}),E=(0,r.useRef)(null),R=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),E.current?.requestSubmit())},[]),L=w&&w.length>0,M=!F.validRepoPath&&void 0!==C,A=!F.validRepoPath&&!F.selectedRepoPath;return(0,t.jsx)(l.BaseDrawer,{open:e,onClose:F.attemptClose,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(d.DrawerTitle,{children:S("createDrawer.title")})]}),o?(0,t.jsx)(d.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(u.Badge,{variant:"secondary",children:S("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:F.attemptClose,disabled:o,children:S("createDrawer.cancel")}),(0,t.jsx)(c.Button,{type:"submit",form:"create-feature-form",disabled:!F.description.trim()||o||A,children:S(o?"createDrawer.creating":"createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(h.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:E,id:"create-feature-form",onSubmit:F.handleSubmit,onKeyDown:R,className:"flex flex-col gap-4",children:[M?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)(H,{repositories:F.localRepos,value:F.selectedRepoPath,onChange:F.setSelectedRepoPath,onAddRepository:e=>{F.setLocalRepos(t=>[...t,e]),F.setSelectedRepoPath(e.path)},disabled:o})]}):F.validRepoPath?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:C?.find(e=>e.path===F.validRepoPath)?.name??F.validRepoPath.split("/").pop()})]}):null,(0,t.jsx)(P,{description:F.description,onDescriptionChange:F.setDescription,attachments:F.attachments,onRemoveFile:F.handleRemoveFile,onNotesChange:F.handleNotesChange,onPaste:F.handlePaste,onDragEnter:F.handleDragEnter,onDragLeave:F.handleDragLeave,onDragOver:F.handleDragOver,onDrop:F.handleDrop,onAddFiles:F.handleAddFiles,isDragOver:F.isDragOver,uploadError:F.uploadError,isPromptFocused:F.isPromptFocused,onPromptFocus:()=>F.setIsPromptFocused(!0),onPromptBlur:()=>F.setIsPromptFocused(!1),fast:F.fast,onFastChange:F.setFast,pending:F.pending,onPendingChange:F.setPending,overrideAgent:F.overrideAgent,overrideModel:F.overrideModel,currentAgentType:D,currentModel:N,onAgentModelChange:(e,t)=>{F.setOverrideAgent(e),F.setOverrideModel(t)},isSubmitting:o}),L&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(p.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.parentFeature")}),(0,t.jsx)(G,{features:w,value:F.parentId,onChange:F.setParentId,disabled:o})]}):null,(0,t.jsx)(I,{approvalGates:F.approvalGates,onApprovalGatesChange:F.setApprovalGates,enableEvidence:F.enableEvidence,onEnableEvidenceChange:F.setEnableEvidence,commitEvidence:F.commitEvidence,onCommitEvidenceChange:F.setCommitEvidence,push:F.push,onPushChange:F.setPush,openPr:F.openPr,onOpenPrChange:F.setOpenPr,ciWatchEnabled:F.ciWatchEnabled,onCiWatchChange:F.setCiWatchEnabled,rebaseBeforeBranch:F.rebaseBeforeBranch,onRebaseBeforeBranchChange:F.setRebaseBeforeBranch,commitSpecs:F.commitSpecs,onCommitSpecsChange:F.setCommitSpecs,forkAndPr:F.forkAndPr,onForkAndPrChange:F.setForkAndPr,canPush:F.canPush,fast:F.fast,computedPush:F.computedPush,computedOpenPr:F.computedOpenPr,isSubmitting:o,agentType:F.overrideAgent??D,permissionMode:F.permissionMode,onPermissionModeChange:F.setPermissionMode})]})})})})}e.s(["CreateDrawerClient",0,function({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:d,workflowDefaults:c,currentAgentType:p,currentModel:u,canPushDirectly:h}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),g=(0,a.usePathname)().startsWith("/create"),b=!x&&g;(0,r.useEffect)(()=>{!g&&x&&f(!1)},[g,x]);let j=(0,r.useCallback)(()=>{m.push("/")},[m]),v=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shipit-ai:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(Q,{open:b,onClose:j,onSubmit:v,repositoryPath:e,features:l,repositories:d,workflowDefaults:c,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:u,canPushDirectly:h})}],15203)}]);
package/web/package.json CHANGED
@@ -8,8 +8,8 @@
8
8
  "dev:e2e": "next dev -p 3001",
9
9
  "build": "next build",
10
10
  "start": "next start",
11
- "lint": "eslint . --max-warnings 0",
12
- "lint:fix": "eslint . --fix --max-warnings 0",
11
+ "lint": "cd ../../.. && eslint src/presentation/web --max-warnings 0",
12
+ "lint:fix": "cd ../../.. && eslint src/presentation/web --fix --max-warnings 0",
13
13
  "format": "prettier --write .",
14
14
  "format:check": "prettier --check .",
15
15
  "typecheck": "tsc --noEmit"
@@ -0,0 +1,10 @@
1
+ <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M21 7.5L12 3L3 7.5V16.5L12 21L21 16.5V7.5Z" stroke="#0f172a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M3 7.5L12 12L21 7.5" stroke="#0f172a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path d="M12 12V21" stroke="#0f172a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
+ <path d="M12 12C12 12 15 9 15 6C15 3 12 2 12 2" stroke="#2563eb" stroke-width="1.5" stroke-linecap="round"/>
6
+ <path d="M12 12C12 12 9 9 9 6C9 3 12 2 12 2" stroke="#2563eb" stroke-width="1.5" stroke-linecap="round"/>
7
+ <circle cx="15" cy="6" r="1" fill="#2563eb"/>
8
+ <circle cx="9" cy="6" r="1" fill="#2563eb"/>
9
+ <circle cx="12" cy="2" r="1" fill="#2563eb"/>
10
+ </svg>