@shipit-ai/cli 1.168.0 → 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 (428) 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/src/presentation/web/app/actions/add-marketplace.d.ts +5 -0
  53. package/dist/src/presentation/web/app/actions/add-marketplace.d.ts.map +1 -0
  54. package/dist/src/presentation/web/app/actions/add-marketplace.js +11 -0
  55. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts +5 -0
  56. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts.map +1 -0
  57. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.js +11 -0
  58. package/dist/src/presentation/web/app/actions/install-plugin.d.ts +5 -0
  59. package/dist/src/presentation/web/app/actions/install-plugin.d.ts.map +1 -0
  60. package/dist/src/presentation/web/app/actions/install-plugin.js +11 -0
  61. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts +5 -0
  62. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts.map +1 -0
  63. package/dist/src/presentation/web/app/actions/toggle-plugin.js +11 -0
  64. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts +5 -0
  65. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts.map +1 -0
  66. package/dist/src/presentation/web/app/actions/uninstall-plugin.js +11 -0
  67. package/dist/src/presentation/web/app/plugins/page.d.ts +2 -0
  68. package/dist/src/presentation/web/app/plugins/page.d.ts.map +1 -0
  69. package/dist/src/presentation/web/app/plugins/page.js +23 -0
  70. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
  72. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts +9 -0
  73. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts.map +1 -0
  74. package/dist/src/presentation/web/components/features/plugins/plugin-card.js +15 -0
  75. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts +17 -0
  76. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts.map +1 -0
  77. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.js +60 -0
  78. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts +11 -0
  79. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts.map +1 -0
  80. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.js +33 -0
  81. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts +18 -0
  82. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts.map +1 -0
  83. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.js +51 -0
  84. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts +6 -0
  85. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts.map +1 -0
  86. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.js +115 -0
  87. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts +12 -0
  88. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts.map +1 -0
  89. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.js +24 -0
  90. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +3 -3
  91. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  92. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +23 -102
  93. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +2 -3
  94. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +18 -22
  96. package/dist/src/presentation/web/components/features/settings/ci-settings-section.d.ts.map +1 -1
  97. package/dist/src/presentation/web/components/features/settings/ci-settings-section.js +14 -5
  98. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -1
  99. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +14 -4
  100. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +9 -3
  101. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -1
  102. package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +75 -65
  103. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
  104. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +20 -18
  105. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.d.ts.map +1 -1
  106. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.js +1 -1
  107. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +3 -3
  108. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  109. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +53 -50
  110. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  111. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +27 -25
  112. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.d.ts.map +1 -1
  113. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.js +3 -3
  114. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts +6 -0
  115. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts.map +1 -0
  116. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.js +76 -0
  117. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts +15 -0
  118. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts.map +1 -0
  119. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.js +29 -0
  120. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +3 -3
  121. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  122. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +64 -47
  123. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  124. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +32 -24
  125. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  126. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +29 -378
  127. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +2 -0
  128. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  129. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +14 -0
  130. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts +8 -8
  131. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts.map +1 -1
  132. package/dist/src/presentation/web/components/features/settings/settings-section-utils.js +3 -6
  133. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
  134. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
  135. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +7 -7
  136. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.d.ts.map +1 -1
  137. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.js +1 -1
  138. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +3 -3
  139. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  140. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +118 -165
  141. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
  142. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  143. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +26 -64
  144. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  145. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  146. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  147. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  148. package/dist/src/presentation/web/components/ui/tooltip.d.ts.map +1 -1
  149. package/dist/src/presentation/web/components/ui/tooltip.js +3 -3
  150. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  151. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  152. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  153. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  154. package/dist/src/presentation/web/lib/feature-flags.js +6 -0
  155. package/dist/translations/ar/web.json +40 -2
  156. package/dist/translations/de/web.json +40 -2
  157. package/dist/translations/en/web.json +40 -2
  158. package/dist/translations/es/web.json +40 -2
  159. package/dist/translations/fr/web.json +40 -2
  160. package/dist/translations/he/web.json +40 -2
  161. package/dist/translations/pt/web.json +40 -2
  162. package/dist/translations/ru/web.json +40 -2
  163. package/dist/tsconfig.build.tsbuildinfo +1 -1
  164. package/package.json +1 -1
  165. package/web/.next/BUILD_ID +1 -1
  166. package/web/.next/app-path-routes-manifest.json +1 -0
  167. package/web/.next/build-manifest.json +3 -3
  168. package/web/.next/fallback-build-manifest.json +3 -3
  169. package/web/.next/prerender-manifest.json +3 -3
  170. package/web/.next/required-server-files.js +3 -3
  171. package/web/.next/required-server-files.json +3 -3
  172. package/web/.next/routes-manifest.json +6 -0
  173. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  174. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  175. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  177. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  178. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  179. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  180. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  181. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  182. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  183. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  184. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  185. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  186. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  189. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  190. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  191. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  192. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  193. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  195. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  196. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  197. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  198. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  199. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  201. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  202. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  203. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  204. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  205. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  206. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  207. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  208. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  209. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  210. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  211. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  212. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  213. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  214. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  215. package/web/.next/server/app/_global-error.html +1 -1
  216. package/web/.next/server/app/_global-error.rsc +1 -1
  217. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  218. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  219. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  220. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  221. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  222. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  223. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  224. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  226. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  227. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  228. package/web/.next/server/app/api/graph-data/route.js +1 -1
  229. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  230. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  231. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  232. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  233. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  234. package/web/.next/server/app/plugins/page/app-paths-manifest.json +3 -0
  235. package/web/.next/server/app/plugins/page/build-manifest.json +18 -0
  236. package/web/.next/server/app/plugins/page/next-font-manifest.json +10 -0
  237. package/web/.next/server/app/plugins/page/react-loadable-manifest.json +8 -0
  238. package/web/.next/server/app/plugins/page/server-reference-manifest.json +185 -0
  239. package/web/.next/server/app/plugins/page.js +17 -0
  240. package/web/.next/server/app/plugins/page.js.map +5 -0
  241. package/web/.next/server/app/plugins/page.js.nft.json +1 -0
  242. package/web/.next/server/app/plugins/page_client-reference-manifest.js +3 -0
  243. package/web/.next/server/app/settings/page/server-reference-manifest.json +34 -22
  244. package/web/.next/server/app/settings/page.js +1 -1
  245. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  246. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  248. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  249. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  251. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  252. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  253. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  254. package/web/.next/server/app/version/page.js.nft.json +1 -1
  255. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app-paths-manifest.json +1 -0
  257. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  258. package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js → [root-of-the-server]__07suer1._.js} +2 -2
  259. package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js → [root-of-the-server]__0sgzo7y._.js} +2 -2
  260. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  261. package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js → [root-of-the-server]__0uxlr84._.js} +2 -2
  262. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  263. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  265. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  266. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  267. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  268. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js +4 -0
  269. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js.map +1 -0
  270. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  271. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  272. package/web/.next/server/chunks/ssr/{_04s_q5r._.js → 12k._sonner_dist_index_mjs_0-vmpk5._.js} +2 -2
  273. package/web/.next/server/chunks/ssr/12k._sonner_dist_index_mjs_0-vmpk5._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0rvrr1j._.js → [root-of-the-server]__0.5ojmt._.js} +2 -2
  275. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js +3 -0
  277. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  279. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  280. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  281. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  283. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  285. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  286. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  287. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  288. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js +3 -0
  289. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  291. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  293. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  294. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  295. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/{_00u~.41._.js → _03x4h9e._.js} +2 -2
  297. package/web/.next/server/chunks/ssr/_03x4h9e._.js.map +1 -0
  298. package/web/.next/server/chunks/ssr/{_0~0jkp_._.js → _05fk0a4._.js} +2 -2
  299. package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +1 -0
  300. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  301. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  302. package/web/.next/server/chunks/ssr/{_0r04xhw._.js → _07u.4jr._.js} +2 -2
  303. package/web/.next/server/chunks/ssr/{_0r04xhw._.js.map → _07u.4jr._.js.map} +1 -1
  304. package/web/.next/server/chunks/ssr/_083k45~._.js +3 -0
  305. package/web/.next/server/chunks/ssr/_083k45~._.js.map +1 -0
  306. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  307. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  308. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  309. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  311. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  313. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/_0i~-084._.js +3 -0
  315. package/web/.next/server/chunks/ssr/_0i~-084._.js.map +1 -0
  316. package/web/.next/server/chunks/ssr/_0kt18~b._.js +3 -0
  317. package/web/.next/server/chunks/ssr/_0kt18~b._.js.map +1 -0
  318. package/web/.next/server/chunks/ssr/{_08_079y._.js → _0mj-tmi._.js} +2 -2
  319. package/web/.next/server/chunks/ssr/{_08_079y._.js.map → _0mj-tmi._.js.map} +1 -1
  320. package/web/.next/server/chunks/ssr/{_0hw~zvl._.js → _0o_oaao._.js} +2 -2
  321. package/web/.next/server/chunks/ssr/_0o_oaao._.js.map +1 -0
  322. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  323. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  324. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  325. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/_0rcx2-c._.js +9 -0
  327. package/web/.next/server/chunks/ssr/_0rcx2-c._.js.map +1 -0
  328. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  329. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/_0tcccbb._.js +1 -1
  331. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/_0tfz1v_._.js +3 -0
  333. package/web/.next/server/chunks/ssr/_0tfz1v_._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/{_0txr945._.js → _0u3d8.n._.js} +2 -2
  335. package/web/.next/server/chunks/ssr/_0u3d8.n._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  337. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  338. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  339. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  340. package/web/.next/server/chunks/ssr/{_09r54oy._.js → _0ygafoy._.js} +2 -2
  341. package/web/.next/server/chunks/ssr/{_09r54oy._.js.map → _0ygafoy._.js.map} +1 -1
  342. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  343. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  345. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  346. package/web/.next/server/chunks/ssr/_10joy2y._.js +3 -0
  347. package/web/.next/server/chunks/ssr/_10joy2y._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  349. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  350. package/web/.next/server/chunks/ssr/_12uy.45._.js +3 -0
  351. package/web/.next/server/chunks/ssr/_12uy.45._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +3 -0
  353. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  355. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  357. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  358. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  359. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  360. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  361. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  362. package/web/.next/server/middleware-build-manifest.js +3 -3
  363. package/web/.next/server/next-font-manifest.js +1 -1
  364. package/web/.next/server/next-font-manifest.json +3 -0
  365. package/web/.next/server/pages/500.html +1 -1
  366. package/web/.next/server/server-reference-manifest.js +1 -1
  367. package/web/.next/server/server-reference-manifest.json +187 -61
  368. package/web/.next/static/chunks/{0_xww9bsde~1x.js → 01~u_q8i2zgcl.js} +2 -2
  369. package/web/.next/static/chunks/{06nsv-_ec9ehn.js → 025ml1.quzhqf.js} +1 -1
  370. package/web/.next/static/chunks/{0fg~vc93spa9c.js → 07gal-~-zwagj.js} +1 -1
  371. package/web/.next/static/chunks/07le1mov593z9.js +1 -0
  372. package/web/.next/static/chunks/09ungqk9~va40.js +1 -0
  373. package/web/.next/static/chunks/0ab36sfvo.9ai.js +1 -0
  374. package/web/.next/static/chunks/0aq9-lg.5r.nk.js +5 -0
  375. package/web/.next/static/chunks/{0in4l8mne5y~_.js → 0b2pi58fg3lt3.js} +1 -1
  376. package/web/.next/static/chunks/{0cv09-g0prv4o.js → 0cvyulutrctst.js} +1 -1
  377. package/web/.next/static/chunks/0eqi_uuiepxhf.js +1 -0
  378. package/web/.next/static/chunks/{0v~n9z6b639zm.js → 0jwq.mr-.ltps.js} +1 -1
  379. package/web/.next/static/chunks/0k8m.qcahm63g.js +1 -0
  380. package/web/.next/static/chunks/0lc0x8kcu46ae.js +1 -0
  381. package/web/.next/static/chunks/0lz-oq74e_ciu.js +1 -0
  382. package/web/.next/static/chunks/0nkujbu62z1jl.js +7 -0
  383. package/web/.next/static/chunks/0oadtfnesfdqc.js +1 -0
  384. package/web/.next/static/chunks/{0ygtupas8pxdi.js → 0uryz2ek77e2a.js} +1 -1
  385. package/web/.next/static/chunks/0v7r7y~3e~oo6.css +1 -0
  386. package/web/.next/static/chunks/{0hg8qgtv~kuys.js → 0xo.hi4px83w2.js} +1 -1
  387. package/web/.next/static/chunks/{0_v4t6gzx.332.js → 0xr0p_ynap2~d.js} +1 -1
  388. package/web/.next/static/chunks/0xtzpbc5mm5z7.js +5 -0
  389. package/web/.next/static/chunks/{133q8d69p6cl0.js → 0~-kk8o121_13.js} +1 -1
  390. package/web/.next/static/chunks/{078lp287u~c~b.js → 16k169s1a_8ru.js} +1 -1
  391. package/web/.next/static/chunks/{17c31c1biwfyi.js → 17dp77weos4ao.js} +1 -1
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qxd563._.js +0 -3
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qxd563._.js.map +0 -1
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +0 -1
  395. package/web/.next/server/chunks/ssr/_00u~.41._.js.map +0 -1
  396. package/web/.next/server/chunks/ssr/_04s_q5r._.js.map +0 -1
  397. package/web/.next/server/chunks/ssr/_0dy8.0k._.js +0 -3
  398. package/web/.next/server/chunks/ssr/_0dy8.0k._.js.map +0 -1
  399. package/web/.next/server/chunks/ssr/_0gdghcr._.js +0 -3
  400. package/web/.next/server/chunks/ssr/_0gdghcr._.js.map +0 -1
  401. package/web/.next/server/chunks/ssr/_0hw~zvl._.js.map +0 -1
  402. package/web/.next/server/chunks/ssr/_0l2~~pi._.js +0 -3
  403. package/web/.next/server/chunks/ssr/_0l2~~pi._.js.map +0 -1
  404. package/web/.next/server/chunks/ssr/_0mi5qj~._.js +0 -3
  405. package/web/.next/server/chunks/ssr/_0mi5qj~._.js.map +0 -1
  406. package/web/.next/server/chunks/ssr/_0n.magx._.js +0 -3
  407. package/web/.next/server/chunks/ssr/_0n.magx._.js.map +0 -1
  408. package/web/.next/server/chunks/ssr/_0txr945._.js.map +0 -1
  409. package/web/.next/server/chunks/ssr/_0y8u4.e._.js +0 -9
  410. package/web/.next/server/chunks/ssr/_0y8u4.e._.js.map +0 -1
  411. package/web/.next/server/chunks/ssr/_0~0jkp_._.js.map +0 -1
  412. package/web/.next/static/chunks/0-ud~1jj7chzu.js +0 -7
  413. package/web/.next/static/chunks/01znjuvi5t9~q.js +0 -5
  414. package/web/.next/static/chunks/033sl_l5o3uo8.css +0 -1
  415. package/web/.next/static/chunks/04r9m_5p953mf.js +0 -1
  416. package/web/.next/static/chunks/07i3-aamszsoh.js +0 -1
  417. package/web/.next/static/chunks/0ee1d3_y40g9f.js +0 -1
  418. package/web/.next/static/chunks/0n3kuj7t_-jzp.js +0 -1
  419. package/web/.next/static/chunks/0pt-d18f7zxvv.js +0 -1
  420. package/web/.next/static/chunks/12pd180jp8zu..js +0 -5
  421. package/web/.next/static/chunks/13fcwhkw7dle2.js +0 -1
  422. package/web/.next/static/chunks/15mks7_3venc1.js +0 -1
  423. /package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js.map → [root-of-the-server]__07suer1._.js.map} +0 -0
  424. /package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js.map → [root-of-the-server]__0sgzo7y._.js.map} +0 -0
  425. /package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js.map → [root-of-the-server]__0uxlr84._.js.map} +0 -0
  426. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_buildManifest.js +0 -0
  427. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_clientMiddlewareManifest.js +0 -0
  428. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(96871),i=e.i(16539),n=e.i(51818),s=e.i(70727),a=e.i(60589),o=e.i(91060),l=e.i(54864);let r=(0,l.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),c=(0,l.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),d=(0,l.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var u=e.i(99413),p=e.i(85202);let h=(0,l.default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),g=(0,l.default)("layout-list",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["path",{d:"M14 4h7",key:"3xa0d5"}],["path",{d:"M14 9h7",key:"1icrd9"}],["path",{d:"M14 15h7",key:"1mj8o2"}],["path",{d:"M14 20h7",key:"11slyb"}]]);var m=e.i(68316);e.i(26759);var f=e.i(97164),x=e.i(31777),b=e.i(9749),v=e.i(84812),v=v,w=e.i(68637),y=e.i(84735),j=e.i(81481),k=e.i(41957),S=e.i(51911),C=e.i(2828);function M({label:e,description:i,htmlFor:n,tooltip:s,children:a}){let o=s??i;return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:n,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:e}),o?(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(j.Info,{className:"text-muted-foreground/40 hover:text-muted-foreground h-3.5 w-3.5 shrink-0 cursor-help transition-colors"})}),(0,t.jsx)(C.TooltipContent,{side:"top",className:"max-w-64 text-[11px] leading-relaxed",children:(0,t.jsx)("span",{className:"text-muted-foreground",children:o})})]}):null]}),i?(0,t.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:i}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:a})]})}function I({label:e,description:i,id:n,testId:s,checked:a,onChange:o,disabled:l,tooltip:r}){return(0,t.jsx)(M,{label:e,description:i,htmlFor:n,tooltip:r,children:(0,t.jsx)(S.Switch,{id:n,"data-testid":s,checked:a,onCheckedChange:o,disabled:l,className:(0,x.cn)("cursor-pointer",l&&"cursor-not-allowed opacity-50")})})}function T({icon:e,title:i,description:n,badge:s,testId:a,tooltip:o,tooltipLinks:l,children:r}){return(0,t.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":a,children:[(0,t.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(e,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("h2",{className:"text-sm font-semibold",children:i}),o?(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(j.Info,{className:"text-muted-foreground/40 hover:text-muted-foreground h-3.5 w-3.5 shrink-0 cursor-help transition-colors"})}),(0,t.jsxs)(C.TooltipContent,{side:"bottom",className:"max-w-72 text-[11px] leading-relaxed",children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:o}),null!=l&&l.length>0?(0,t.jsx)("div",{className:"border-border/50 mt-1.5 flex flex-col gap-0.5 border-t pt-1.5",children:l.map(e=>(0,t.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1.5 text-[10px] tracking-wide transition-colors",children:[(0,t.jsx)(y.ExternalLink,{className:"h-2.5 w-2.5 shrink-0 opacity-50"}),e.label]},e.href))}):null]})]}):null,s?(0,t.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:s}):null]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:n})]}),(0,t.jsx)("div",{className:"px-4",children:r})]})}function N({id:e,testId:i,value:n,onChange:s,onBlur:a,placeholder:o,min:l=1,max:r,step:c=1,suffix:d}){let{t:u}=(0,f.useTranslation)("web"),p=""===n?void 0:parseInt(n,10);return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{s(String(Math.max(l,(p??parseInt(o,10))-c)))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-r transition-colors","aria-label":u("common.decrease"),children:(0,t.jsx)(v.default,{className:"h-3 w-3"})}),(0,t.jsx)("input",{id:e,"data-testid":i,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:n,placeholder:o,onChange:e=>{s(e.target.value.replace(/[^0-9]/g,""))},onBlur:a,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e;e=p??parseInt(o,10),s(String(null!=r?Math.min(r,e+c):e+c))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-l transition-colors","aria-label":u("common.increase"),children:(0,t.jsx)(w.Plus,{className:"h-3 w-3"})})]}),d?(0,t.jsx)("span",{className:"text-muted-foreground text-[11px]",children:d}):null]})}function P({children:e}){return(0,t.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:e})})}function A({settings:e}){let{t:s}=(0,f.useTranslation)("web"),[a,o]=(0,i.useState)(e.agent.type);return(0,t.jsx)(T,{icon:n.Bot,title:s("settings.agent.sectionTitle"),description:s("settings.agent.sectionDescription"),testId:"agent-settings-section",tooltip:s("settings.agent.hint"),tooltipLinks:[{label:s("settings.agent.links.agentSystem"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/architecture/agent-system.md"},{label:s("settings.agent.links.addingAgents"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/development/adding-agents.md"},{label:s("settings.agent.links.configurationGuide"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/guides/configuration.md"}],children:(0,t.jsx)(M,{label:s("settings.agent.agentAndModel"),description:s("settings.agent.agentAndModelDescription"),tooltip:"Changing the agent switches which AI CLI tool runs your features. Each agent has different capabilities, speed, and cost tradeoffs.",htmlFor:"agent-model-picker",children:(0,t.jsx)(b.AgentModelPicker,{initialAgentType:a,initialModel:e.models.default,mode:"settings",onAgentModelChange:e=>o(e),className:"w-55"})})})}var D=e.i(60112),F=e.i(47373),E=e.i(81846),R=e.i(96976);let L=(0,R.createServerReference)("40f6034f5630f0913a6fc804f42a3f4665d98660f1",R.callServer,void 0,R.findSourceMapURL,"updateSettingsAction");var z=e.i(17406),B=e.i(30342),K=e.i(50579),q=e.i(89048);function U(e){return(0,t.jsx)(K.Code,{className:(0,x.cn)("h-4 w-4",e.className),...e})}function H({className:e}){return(0,t.jsx)(B.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,x.cn)("rounded-sm object-contain",e)})}function W({className:e}){return(0,t.jsx)(B.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,x.cn)("rounded-sm object-contain",e)})}function O({className:e}){return(0,t.jsx)(B.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,x.cn)("rounded-sm object-contain",e)})}function V({className:e}){return(0,t.jsx)(B.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,x.cn)("rounded-sm object-contain",e)})}function _({className:e,...i}){return(0,t.jsx)(q.Rocket,{className:(0,x.cn)("h-4 w-4",e),...i})}H.displayName="VsCodeIcon",W.displayName="CursorEditorIcon",O.displayName="WindsurfIcon",V.displayName="ZedIcon",_.displayName="AntigravityIcon";let G={vscode:H,cursor:W,windsurf:O,zed:V,antigravity:_},$=[{id:"vscode",name:"VS Code",available:!0},{id:"cursor",name:"Cursor",available:!0},{id:"windsurf",name:"Windsurf",available:!0},{id:"zed",name:"Zed",available:!0},{id:"antigravity",name:"Antigravity",available:!0}],Z=[{id:"bash",name:"Bash",available:!0},{id:"zsh",name:"Zsh",available:!0},{id:"fish",name:"Fish",available:!0}];function X({settings:e,availableEditors:n,availableShells:a,availableTerminals:o}){let{t:l}=(0,f.useTranslation)("web"),[,r]=(0,i.useTransition)(),[c,d]=(0,i.useState)(e.environment.defaultEditor),[u,p]=(0,i.useState)(e.environment.shellPreference),[h,g]=(0,i.useState)(e.environment.terminalPreference??z.TerminalType.System),m=o??[{id:z.TerminalType.System,name:l("settings.environment.systemTerminal"),available:!0}];function b(e){r(async()=>{let t=await L(e);t.success||D.toast.error(t.error??l("settings.failedToSave"))})}return(0,t.jsxs)(T,{icon:s.Terminal,title:l("settings.environment.sectionTitle"),description:l("settings.environment.sectionDescription"),testId:"environment-settings-section",tooltip:l("settings.environment.hint"),tooltipLinks:[{label:l("settings.environment.links.configurationGuide"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/guides/configuration.md"}],children:[(0,t.jsx)(M,{label:l("settings.environment.defaultEditor"),description:l("settings.environment.defaultEditorDescription"),tooltip:"The editor that opens when you click 'Launch' on a tool card or when ShipIT needs to open a file for review.",htmlFor:"default-editor",children:(0,t.jsxs)(F.Select,{value:c,onValueChange:e=>{d(e),b({environment:{defaultEditor:e,shellPreference:u,terminalPreference:h}})},children:[(0,t.jsx)(F.SelectTrigger,{id:"default-editor","data-testid":"editor-select",className:"w-64 cursor-pointer text-xs",children:(0,t.jsx)(F.SelectValue,{})}),(0,t.jsx)(F.SelectContent,{children:(n??$).map(e=>{var i;let n=(i=e.id)&&i in G?G[i]:U;return(0,t.jsx)(F.SelectItem,{value:e.id,disabled:!e.available,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(n,{className:"h-4 w-4 shrink-0"}),e.name,(0,t.jsx)(E.Badge,{variant:"outline",className:(0,x.cn)("ml-auto px-1.5 py-0 text-[10px] leading-4 font-normal",e.available?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:e.available?"Installed":"Not Installed"})]})},e.id)})})]})}),(0,t.jsx)(M,{label:l("settings.environment.shell"),description:l("settings.environment.shellDescription"),tooltip:"Controls which shell runs generated scripts like install commands and git operations. Match this to your daily driver shell.",htmlFor:"shell-preference",children:(0,t.jsxs)(F.Select,{value:u,onValueChange:e=>{p(e),b({environment:{defaultEditor:c,shellPreference:e,terminalPreference:h}})},children:[(0,t.jsx)(F.SelectTrigger,{id:"shell-preference","data-testid":"shell-select",className:"w-64 cursor-pointer text-xs",children:(0,t.jsx)(F.SelectValue,{})}),(0,t.jsx)(F.SelectContent,{children:(a??Z).map(e=>(0,t.jsx)(F.SelectItem,{value:e.id,disabled:!e.available,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[e.name,(0,t.jsx)(E.Badge,{variant:"outline",className:(0,x.cn)("ml-auto px-1.5 py-0 text-[10px] leading-4 font-normal",e.available?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:e.available?"Installed":"Not Installed"})]})},e.id))})]})}),(0,t.jsx)(M,{label:l("settings.environment.terminal"),description:l("settings.environment.terminalDescription"),tooltip:"The terminal emulator launched when opening shell sessions from the web UI. Only affects web-launched terminals, not CLI usage.",htmlFor:"terminal-preference",children:(0,t.jsxs)(F.Select,{value:h,onValueChange:e=>{g(e),b({environment:{defaultEditor:c,shellPreference:u,terminalPreference:e}})},children:[(0,t.jsx)(F.SelectTrigger,{id:"terminal-preference","data-testid":"terminal-select",className:"w-64 cursor-pointer text-xs",children:(0,t.jsx)(F.SelectValue,{})}),(0,t.jsx)(F.SelectContent,{children:m.map(e=>(0,t.jsx)(F.SelectItem,{value:e.id,disabled:!e.available,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[e.name,(0,t.jsx)(E.Badge,{variant:"outline",className:(0,x.cn)("ml-auto px-1.5 py-0 text-[10px] leading-4 font-normal",e.available?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:e.available?"Installed":"Not Installed"})]})},e.id))})]})})]})}function Y(e,t={}){let i=t.autoArchiveEnabled??e.autoArchiveEnabled,n=parseInt(t.autoArchiveDelay??e.autoArchiveDelay,10);return{workflow:{openPrOnImplementationComplete:t.openPr??e.openPr,approvalGateDefaults:{pushOnImplementationComplete:t.pushOnComplete??e.pushOnComplete,allowPrd:t.allowPrd??e.allowPrd,allowPlan:t.allowPlan??e.allowPlan,allowMerge:t.allowMerge??e.allowMerge},enableEvidence:t.enableEvidence??e.enableEvidence,commitEvidence:t.commitEvidence??e.commitEvidence,ciWatchEnabled:t.ciWatchEnabled??e.ciWatchEnabled,defaultFastMode:t.defaultFastMode??e.defaultFastMode,autoArchiveDelayMinutes:i?Number.isNaN(n)||n<1?10:n:0}}}function Q({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),[o,l]=(0,i.useState)(e.workflow.openPrOnImplementationComplete),[r,c]=(0,i.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[d,u]=(0,i.useState)(e.workflow.approvalGateDefaults.allowPrd),[p,h]=(0,i.useState)(e.workflow.approvalGateDefaults.allowPlan),[g,m]=(0,i.useState)(e.workflow.approvalGateDefaults.allowMerge),[x,b]=(0,i.useState)(e.workflow.enableEvidence),[v,w]=(0,i.useState)(e.workflow.commitEvidence),[y,j]=(0,i.useState)(!1!==e.workflow.ciWatchEnabled),[k,S]=(0,i.useState)(!1!==e.workflow.defaultFastMode),[C,A]=(0,i.useState)((e.workflow.autoArchiveDelayMinutes??10)>0),[F,E]=(0,i.useState)(String(e.workflow.autoArchiveDelayMinutes??10));function R(){return{openPr:o,pushOnComplete:r,allowPrd:d,allowPlan:p,allowMerge:g,enableEvidence:x,commitEvidence:v,ciWatchEnabled:y,defaultFastMode:k,autoArchiveEnabled:C,autoArchiveDelay:F}}function z(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}return(0,t.jsxs)(T,{icon:a.GitBranch,title:n("settings.workflow.title"),description:n("settings.workflow.sectionDescription"),testId:"workflow-settings-section",tooltip:n("settings.workflow.hint"),tooltipLinks:[{label:n("settings.workflow.links.approvalGates"),href:"https://github.com/jrmatherly/shipit/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:n("settings.workflow.links.pushAndPrFlags"),href:"https://github.com/jrmatherly/shipit/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:[(0,t.jsx)(I,{label:n("settings.workflow.defaultFastMode"),description:n("settings.workflow.defaultFastModeDescription"),tooltip:"When enabled, new features skip the PRD and Plan phases and go straight to implementation. Useful for quick fixes, risky for complex features.",id:"default-fast-mode",testId:"switch-default-fast-mode",checked:k,onChange:e=>{S(e),z(Y(R(),{defaultFastMode:e}))}}),(0,t.jsx)(P,{children:n("settings.workflow.subsections.approve")}),(0,t.jsx)(I,{label:n("settings.workflow.autoApprovePrd"),description:n("settings.workflow.autoApprovePrdDescription"),tooltip:"Automatically approves the requirements document without pausing for your review. Saves time but you lose the chance to refine requirements before planning.",id:"allow-prd",testId:"switch-allow-prd",checked:d,onChange:e=>{u(e),z(Y(R(),{allowPrd:e}))}}),(0,t.jsx)(I,{label:n("settings.workflow.autoApprovePlan"),description:n("settings.workflow.autoApprovePlanDescription"),tooltip:"Automatically approves the implementation plan. The agent proceeds to coding without waiting for your plan review.",id:"allow-plan",testId:"switch-allow-plan",checked:p,onChange:e=>{h(e),z(Y(R(),{allowPlan:e}))}}),(0,t.jsx)(I,{label:n("settings.workflow.autoApproveMerge"),description:n("settings.workflow.autoApproveMergeDescription"),tooltip:"Automatically merges the PR after implementation without requiring your final review. Use with caution on production branches.",id:"allow-merge",testId:"switch-allow-merge",checked:g,onChange:e=>{m(e),z(Y(R(),{allowMerge:e}))}}),(0,t.jsx)(P,{children:n("settings.workflow.subsections.evidence")}),(0,t.jsx)(I,{label:n("settings.workflow.collectEvidence"),description:n("settings.workflow.collectEvidenceDescription"),tooltip:"Captures screenshots and test outputs during implementation as proof of work. Useful for audit trails and PR documentation.",id:"enable-evidence",testId:"switch-enable-evidence",checked:x,onChange:e=>{b(e),e?z(Y(R(),{enableEvidence:e})):(w(!1),z(Y(R(),{enableEvidence:e,commitEvidence:!1})))}}),(0,t.jsx)(I,{label:n("settings.workflow.addEvidenceToPr"),description:n("settings.workflow.addEvidenceToPrDescription"),tooltip:"Attaches collected evidence artifacts (screenshots, logs) directly to the pull request description.",id:"commit-evidence",testId:"switch-commit-evidence",checked:v,disabled:!x||!o,onChange:e=>{w(e),z(Y(R(),{commitEvidence:e}))}}),(0,t.jsx)(P,{children:n("settings.workflow.subsections.git")}),(0,t.jsx)(I,{label:n("settings.workflow.pushOnComplete"),description:n("settings.workflow.pushOnCompleteDescription"),tooltip:"Automatically pushes the implementation branch to the remote repository when the agent finishes coding.",id:"push-on-complete",testId:"switch-push-on-complete",checked:r,onChange:e=>{c(e),z(Y(R(),{pushOnComplete:e}))}}),(0,t.jsx)(I,{label:n("settings.workflow.openPrOnComplete"),description:n("settings.workflow.openPrOnCompleteDescription"),tooltip:"Creates a pull request automatically after pushing. Combined with push-on-complete, this fully automates the delivery pipeline.",id:"open-pr",testId:"switch-open-pr",checked:o,onChange:e=>{l(e),e?z(Y(R(),{openPr:e})):(w(!1),z(Y(R(),{openPr:e,commitEvidence:!1})))}}),(0,t.jsx)(I,{label:n("settings.workflow.watchCiAfterPush"),description:n("settings.workflow.watchCiAfterPushDescription"),tooltip:"Monitors CI/CD pipeline status after pushing and can attempt fixes if tests fail. Disable if you prefer to handle CI failures manually.",id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:y,onChange:e=>{j(e),z(Y(R(),{ciWatchEnabled:e}))}}),(0,t.jsx)(P,{children:"Archive"}),(0,t.jsx)(I,{label:"Auto-archive completed",description:"Automatically archive features after they reach the completed state",tooltip:"Automatically archives features from the control center canvas after they reach the completed state, keeping the board clean.",id:"auto-archive-enabled",testId:"switch-auto-archive-enabled",checked:C,onChange:e=>{A(e),z(Y(R(),{autoArchiveEnabled:e}))}}),(0,t.jsx)(M,{label:"Archive delay",description:"Minutes to wait after completion before archiving (1-1440)",tooltip:"How long to wait after a feature completes before archiving it. Gives you time to review results before the feature moves off the board.",htmlFor:"auto-archive-delay",children:(0,t.jsx)(N,{id:"auto-archive-delay",testId:"input-auto-archive-delay",value:F,placeholder:"10",min:1,max:1440,suffix:"min",onChange:e=>{E(e)},onBlur:()=>{if(!C)return;let e=parseInt(F,10),t=Number.isNaN(e)?10:Math.min(1440,Math.max(1,e));E(String(t)),z(Y(R(),{autoArchiveDelay:String(t)}))}})})]})}function J(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function ee({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),[a,l]=(0,i.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[r,c]=(0,i.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[d,u]=(0,i.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[p,h]=(0,i.useState)(null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):""),[g,m]=(0,i.useState)(!1!==e.workflow.hideCiStatus),x=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",b=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",v=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"",w=null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):"";function y(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}function j(e){let t=J(e.ciTimeout??r);return{workflow:{ciMaxFixAttempts:J(e.ciMaxFix??a),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:J(e.ciLogMax??d),ciWatchPollIntervalSeconds:J(e.ciPollInterval??p),hideCiStatus:e.hideCiStatus??g}}}return(0,t.jsxs)(T,{icon:o.Activity,title:n("settings.ci.title"),description:n("settings.ci.description"),testId:"ci-settings-section",tooltip:n("settings.ci.hint"),tooltipLinks:[{label:n("settings.ci.links.cicdPipeline"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/development/cicd.md"},{label:n("settings.ci.links.ciSecurityGates"),href:"https://github.com/jrmatherly/shipit/blob/main/specs/003-cicd-security-gates/spec.md"}],children:[(0,t.jsx)(M,{label:n("settings.ci.maxFixAttempts"),description:n("settings.ci.maxFixAttemptsDescription"),tooltip:"How many times the agent will attempt to fix failing CI checks before giving up. Higher values increase the chance of auto-resolution but consume more agent time and API calls.",htmlFor:"ci-max-fix",children:(0,t.jsx)(N,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:a,onChange:l,onBlur:()=>{a!==x&&y(j({ciMaxFix:a}))},min:1,max:10})}),(0,t.jsx)(M,{label:n("settings.ci.watchTimeout"),description:n("settings.ci.watchTimeoutDescription"),tooltip:"Maximum time the agent will wait for CI to finish. If CI hasn't completed within this window, the agent stops watching. Increase for repos with slow CI pipelines.",htmlFor:"ci-timeout",children:(0,t.jsx)(N,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:r,onChange:c,onBlur:()=>{r!==b&&y(j({ciTimeout:r}))},min:30,step:30,suffix:"sec"})}),(0,t.jsx)(M,{label:n("settings.ci.maxLogSize"),description:n("settings.ci.maxLogSizeDescription"),tooltip:"CI logs beyond this character limit are truncated before being sent to the agent for analysis. Keeps agent context focused and avoids excessive token usage.",htmlFor:"ci-log-max",children:(0,t.jsx)(N,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:d,onChange:u,onBlur:()=>{d!==v&&y(j({ciLogMax:d}))},min:1e3,step:5e3,suffix:"chars"})}),(0,t.jsx)(M,{label:n("settings.ci.pollInterval"),description:n("settings.ci.pollIntervalDescription"),tooltip:"How frequently the agent checks GitHub for CI status updates. Lower values give faster feedback but increase API call volume.",htmlFor:"ci-poll-interval",children:(0,t.jsx)(N,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:p,onChange:h,onBlur:()=>{p!==w&&y(j({ciPollInterval:p}))},min:5,step:5,suffix:"sec"})}),(0,t.jsx)(I,{label:n("settings.ci.hideCiStatus"),description:n("settings.ci.hideCiStatusDescription"),tooltip:"When enabled, CI status indicators are hidden from the feature drawer and merge review panels. Useful if you monitor CI through GitHub directly.",id:"hide-ci-status",testId:"switch-hide-ci-status",checked:g,onChange:e=>{m(e),y(j({hideCiStatus:e}))}})]})}var et=e.i(27069),ei=e.i(91967),en=e.i(22353),es=e.i(9413),ea=e.i(36567),eo=e.i(75649),el=e.i(9641),er=e.i(70391),ec=e.i(85565),ed=e.i(87099),eu=["PageUp","PageDown"],ep=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],eh={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},eg="Slider",[em,ef,ex]=(0,ed.createCollection)(eg),[eb,ev]=(0,es.createContextScope)(eg,[ex]),[ew,ey]=eb(eg),ej=i.forwardRef((e,n)=>{let{name:s,min:a=0,max:o=100,step:l=1,orientation:r="horizontal",disabled:c=!1,minStepsBetweenThumbs:d=0,defaultValue:u=[a],value:p,onValueChange:h=()=>{},onValueCommit:g=()=>{},inverted:m=!1,form:f,...x}=e,b=i.useRef(new Set),v=i.useRef(0),w="horizontal"===r,[y=[],j]=(0,ea.useControllableState)({prop:p,defaultProp:u,onChange:e=>{let t=[...b.current];t[v.current]?.focus(),h(e)}}),k=i.useRef(y);function S(e,t,{commit:i}={commit:!1}){let n,s=(String(l).split(".")[1]||"").length,r=Math.round((Math.round((e-a)/l)*l+a)*(n=Math.pow(10,s)))/n,c=(0,et.clamp)(r,[a,o]);j((e=[])=>{let n=function(e=[],t,i){let n=[...e];return n[i]=t,n.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,i)=>e[i+1]-t))>=t;return!0}(n,d*l))return e;{v.current=n.indexOf(c);let t=String(n)!==String(e);return t&&i&&g(n),t?n:e}})}return(0,t.jsx)(ew,{scope:e.__scopeSlider,name:s,disabled:c,min:a,max:o,valueIndexToChangeRef:v,thumbs:b.current,values:y,orientation:r,form:f,children:(0,t.jsx)(em.Provider,{scope:e.__scopeSlider,children:(0,t.jsx)(em.Slot,{scope:e.__scopeSlider,children:(0,t.jsx)(w?eC:eM,{"aria-disabled":c,"data-disabled":c?"":void 0,...x,ref:n,onPointerDown:(0,ei.composeEventHandlers)(x.onPointerDown,()=>{c||(k.current=y)}),min:a,max:o,inverted:m,onSlideStart:c?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let i=e.map(e=>Math.abs(e-t)),n=Math.min(...i);return i.indexOf(n)}(y,e);S(e,t)},onSlideMove:c?void 0:function(e){S(e,v.current)},onSlideEnd:c?void 0:function(){let e=k.current[v.current];y[v.current]!==e&&g(y)},onHomeKeyDown:()=>!c&&S(a,0,{commit:!0}),onEndKeyDown:()=>!c&&S(o,y.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){let i=eu.includes(e.key)||e.shiftKey&&ep.includes(e.key),n=v.current;S(y[n]+l*(i?10:1)*t,n,{commit:!0})}}})})})})});ej.displayName=eg;var[ek,eS]=eb(eg,{startEdge:"left",endEdge:"right",size:"width",direction:1}),eC=i.forwardRef((e,n)=>{let{min:s,max:a,dir:o,inverted:l,onSlideStart:r,onSlideMove:c,onSlideEnd:d,onStepKeyDown:u,...p}=e,[h,g]=i.useState(null),m=(0,en.useComposedRefs)(n,e=>g(e)),f=i.useRef(void 0),x=(0,eo.useDirection)(o),b="ltr"===x,v=b&&!l||!b&&l;function w(e){let t=f.current||h.getBoundingClientRect(),i=ez([0,t.width],v?[s,a]:[a,s]);return f.current=t,i(e-t.left)}return(0,t.jsx)(ek,{scope:e.__scopeSlider,startEdge:v?"left":"right",endEdge:v?"right":"left",direction:v?1:-1,size:"width",children:(0,t.jsx)(eI,{dir:x,"data-orientation":"horizontal",...p,ref:m,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=w(e.clientX);r?.(t)},onSlideMove:e=>{let t=w(e.clientX);c?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=eh[v?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),eM=i.forwardRef((e,n)=>{let{min:s,max:a,inverted:o,onSlideStart:l,onSlideMove:r,onSlideEnd:c,onStepKeyDown:d,...u}=e,p=i.useRef(null),h=(0,en.useComposedRefs)(n,p),g=i.useRef(void 0),m=!o;function f(e){let t=g.current||p.current.getBoundingClientRect(),i=ez([0,t.height],m?[a,s]:[s,a]);return g.current=t,i(e-t.top)}return(0,t.jsx)(ek,{scope:e.__scopeSlider,startEdge:m?"bottom":"top",endEdge:m?"top":"bottom",size:"height",direction:m?1:-1,children:(0,t.jsx)(eI,{"data-orientation":"vertical",...u,ref:h,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=f(e.clientY);l?.(t)},onSlideMove:e=>{let t=f(e.clientY);r?.(t)},onSlideEnd:()=>{g.current=void 0,c?.()},onStepKeyDown:e=>{let t=eh[m?"from-bottom":"from-top"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})}),eI=i.forwardRef((e,i)=>{let{__scopeSlider:n,onSlideStart:s,onSlideMove:a,onSlideEnd:o,onHomeKeyDown:l,onEndKeyDown:r,onStepKeyDown:c,...d}=e,u=ey(eg,n);return(0,t.jsx)(ec.Primitive.span,{...d,ref:i,onKeyDown:(0,ei.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(l(e),e.preventDefault()):"End"===e.key?(r(e),e.preventDefault()):eu.concat(ep).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:(0,ei.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():s(e)}),onPointerMove:(0,ei.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:(0,ei.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),o(e))})})}),eT="SliderTrack",eN=i.forwardRef((e,i)=>{let{__scopeSlider:n,...s}=e,a=ey(eT,n);return(0,t.jsx)(ec.Primitive.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...s,ref:i})});eN.displayName=eT;var eP="SliderRange",eA=i.forwardRef((e,n)=>{let{__scopeSlider:s,...a}=e,o=ey(eP,s),l=eS(eP,s),r=i.useRef(null),c=(0,en.useComposedRefs)(n,r),d=o.values.length,u=o.values.map(e=>eL(e,o.min,o.max)),p=d>1?Math.min(...u):0,h=100-Math.max(...u);return(0,t.jsx)(ec.Primitive.span,{"data-orientation":o.orientation,"data-disabled":o.disabled?"":void 0,...a,ref:c,style:{...e.style,[l.startEdge]:p+"%",[l.endEdge]:h+"%"}})});eA.displayName=eP;var eD="SliderThumb",eF=i.forwardRef((e,n)=>{let s=ef(e.__scopeSlider),[a,o]=i.useState(null),l=(0,en.useComposedRefs)(n,e=>o(e)),r=i.useMemo(()=>a?s().findIndex(e=>e.ref.current===a):-1,[s,a]);return(0,t.jsx)(eE,{...e,ref:l,index:r})}),eE=i.forwardRef((e,n)=>{var s,a,o,l,r;let c,d,{__scopeSlider:u,index:p,name:h,...g}=e,m=ey(eD,u),f=eS(eD,u),[x,b]=i.useState(null),v=(0,en.useComposedRefs)(n,e=>b(e)),w=!x||m.form||!!x.closest("form"),y=(0,er.useSize)(x),j=m.values[p],k=void 0===j?0:eL(j,m.min,m.max),S=(s=p,(a=m.values.length)>2?`Value ${s+1} of ${a}`:2===a?["Minimum","Maximum"][s]:void 0),C=y?.[f.size],M=C?(o=C,l=k,r=f.direction,d=ez([0,50],[0,c=o/2]),(c-d(l)*r)*r):0;return i.useEffect(()=>{if(x)return m.thumbs.add(x),()=>{m.thumbs.delete(x)}},[x,m.thumbs]),(0,t.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[f.startEdge]:`calc(${k}% + ${M}px)`},children:[(0,t.jsx)(em.ItemSlot,{scope:e.__scopeSlider,children:(0,t.jsx)(ec.Primitive.span,{role:"slider","aria-label":e["aria-label"]||S,"aria-valuemin":m.min,"aria-valuenow":j,"aria-valuemax":m.max,"aria-orientation":m.orientation,"data-orientation":m.orientation,"data-disabled":m.disabled?"":void 0,tabIndex:m.disabled?void 0:0,...g,ref:v,style:void 0===j?{display:"none"}:e.style,onFocus:(0,ei.composeEventHandlers)(e.onFocus,()=>{m.valueIndexToChangeRef.current=p})})}),w&&(0,t.jsx)(eR,{name:h??(m.name?m.name+(m.values.length>1?"[]":""):void 0),form:m.form,value:j},p)]})});eF.displayName=eD;var eR=i.forwardRef(({__scopeSlider:e,value:n,...s},a)=>{let o=i.useRef(null),l=(0,en.useComposedRefs)(o,a),r=(0,el.usePrevious)(n);return i.useEffect(()=>{let e=o.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(r!==n&&t){let i=new Event("input",{bubbles:!0});t.call(e,n),e.dispatchEvent(i)}},[r,n]),(0,t.jsx)(ec.Primitive.input,{style:{display:"none"},...s,ref:l,defaultValue:n})});function eL(e,t,i){return(0,et.clamp)(100/(i-t)*(e-t),[0,100])}function ez(e,t){return i=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(i-e[0])}}eR.displayName="RadioBubbleInput",e.s(["Range",0,eA,"Root",0,ej,"Slider",0,ej,"SliderRange",0,eA,"SliderThumb",0,eF,"SliderTrack",0,eN,"Thumb",0,eF,"Track",0,eN,"createSliderScope",0,ev],98207);var eB=e.i(98207),eB=eB;function eK({className:e,defaultValue:n,value:s,min:a=0,max:o=100,...l}){let r=i.useMemo(()=>Array.isArray(s)?s:Array.isArray(n)?n:[a,o],[s,n,a,o]);return(0,t.jsxs)(eB.Root,{"data-slot":"slider",defaultValue:n,value:s,min:a,max:o,className:(0,x.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...l,children:[(0,t.jsx)(eB.Track,{"data-slot":"slider-track",className:(0,x.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,t.jsx)(eB.Range,{"data-slot":"slider-range",className:(0,x.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:r.length},(e,i)=>(0,t.jsx)(eB.Thumb,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},i))]})}let eq=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],eU=eq.length-1;function eH(e){let t=0,i=Math.abs(e-eq[0]);for(let n=1;n<eq.length;n++){let s=Math.abs(e-eq[n]);s<i&&(i=s,t=n)}return t}function eW({id:e,testId:n,value:s,onChange:a,onBlur:o,defaultSeconds:l=1800}){var r;let c,d,u=(""===s?l:parseInt(s,10))||l,[p,h]=(0,i.useState)(()=>eH(u)),g=eH(u);g!==p&&eq[p]!==u&&h(g);let m=(0,i.useCallback)(([e])=>{h(e),a(String(eq[e]))},[a]);return(0,t.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,t.jsx)(eK,{id:e,"data-testid":n,min:0,max:eU,step:1,value:[p],onValueChange:m,onValueCommit:()=>o(),className:"min-w-0 flex-1"}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 text-end text-xs tabular-nums",children:(c=Math.floor((r=eq[p])/3600),d=Math.round(r%3600/60),0===c?`${d}m`:0===d?`${c}h`:`${c}h ${d}m`)})]})}function eO(e){if(void 0===e)return;let t=function(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}(e);return null!=t?1e3*t:void 0}function eV({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),a=e.workflow.stageTimeouts,o=e.workflow.analyzeRepoTimeouts,[l,r]=(0,i.useState)(String(Math.round((a?.analyzeMs??18e5)/1e3))),[c,d]=(0,i.useState)(String(Math.round((a?.requirementsMs??18e5)/1e3))),[p,h]=(0,i.useState)(String(Math.round((a?.researchMs??18e5)/1e3))),[g,m]=(0,i.useState)(String(Math.round((a?.planMs??18e5)/1e3))),[x,b]=(0,i.useState)(String(Math.round((a?.implementMs??18e5)/1e3))),[v,w]=(0,i.useState)(String(Math.round((a?.mergeMs??18e5)/1e3))),[y,j]=(0,i.useState)(String(Math.round((o?.analyzeMs??6e5)/1e3))),k=a?.analyzeMs!=null?String(Math.round(a.analyzeMs/1e3)):"",S=a?.requirementsMs!=null?String(Math.round(a.requirementsMs/1e3)):"",C=a?.researchMs!=null?String(Math.round(a.researchMs/1e3)):"",I=a?.planMs!=null?String(Math.round(a.planMs/1e3)):"",N=a?.implementMs!=null?String(Math.round(a.implementMs/1e3)):"",A=a?.mergeMs!=null?String(Math.round(a.mergeMs/1e3)):"",F=o?.analyzeMs!=null?String(Math.round(o.analyzeMs/1e3)):"";function E(e){return{workflow:{stageTimeouts:{analyzeMs:eO(e.analyzeTimeout??l),requirementsMs:eO(e.requirementsTimeout??c),researchMs:eO(e.researchTimeout??p),planMs:eO(e.planTimeout??g),implementMs:eO(e.implementTimeout??x),mergeMs:eO(e.mergeTimeout??v)},analyzeRepoTimeouts:{analyzeMs:eO(e.analyzeRepoTimeout??y)}}}}function R(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}return(0,t.jsxs)(T,{icon:u.Timer,title:n("settings.stageTimeouts.title"),description:n("settings.stageTimeouts.description"),testId:"stage-timeouts-settings-section",tooltip:n("settings.stageTimeouts.hint"),children:[(0,t.jsx)(P,{children:n("settings.stageTimeouts.subsections.featureAgent")}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.analyze"),description:n("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze",children:(0,t.jsx)(eW,{id:"timeout-analyze",testId:"timeout-analyze-input",value:l,onChange:r,onBlur:()=>{l!==k&&R(E({analyzeTimeout:l}))},defaultSeconds:1800})}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.requirements"),description:n("settings.stageTimeouts.requirementsDescription"),htmlFor:"timeout-requirements",children:(0,t.jsx)(eW,{id:"timeout-requirements",testId:"timeout-requirements-input",value:c,onChange:d,onBlur:()=>{c!==S&&R(E({requirementsTimeout:c}))},defaultSeconds:1800})}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.research"),description:n("settings.stageTimeouts.researchDescription"),htmlFor:"timeout-research",children:(0,t.jsx)(eW,{id:"timeout-research",testId:"timeout-research-input",value:p,onChange:h,onBlur:()=>{p!==C&&R(E({researchTimeout:p}))},defaultSeconds:1800})}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.plan"),description:n("settings.stageTimeouts.planDescription"),htmlFor:"timeout-plan",children:(0,t.jsx)(eW,{id:"timeout-plan",testId:"timeout-plan-input",value:g,onChange:m,onBlur:()=>{g!==I&&R(E({planTimeout:g}))},defaultSeconds:1800})}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.implement"),description:n("settings.stageTimeouts.implementDescription"),htmlFor:"timeout-implement",children:(0,t.jsx)(eW,{id:"timeout-implement",testId:"timeout-implement-input",value:x,onChange:b,onBlur:()=>{x!==N&&R(E({implementTimeout:x}))},defaultSeconds:1800})}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.merge"),description:n("settings.stageTimeouts.mergeDescription"),htmlFor:"timeout-merge",children:(0,t.jsx)(eW,{id:"timeout-merge",testId:"timeout-merge-input",value:v,onChange:w,onBlur:()=>{v!==A&&R(E({mergeTimeout:v}))},defaultSeconds:1800})}),(0,t.jsx)(P,{children:n("settings.stageTimeouts.subsections.analyzeRepoAgent")}),(0,t.jsx)(M,{label:n("settings.stageTimeouts.analyze"),description:n("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze-repo",children:(0,t.jsx)(eW,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:y,onChange:j,onBlur:()=>{y!==F&&R(E({analyzeRepoTimeout:y}))},defaultSeconds:600})})]})}function e_({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),[a,o]=(0,i.useState)(e.notifications.inApp.enabled),[l,c]=(0,i.useState)({...e.notifications.events});function d(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}function u(e={}){return{notifications:{inApp:{enabled:e.inApp??a},events:e.events??l}}}return(0,t.jsxs)(T,{icon:r,title:n("settings.notifications.title"),description:n("settings.notifications.sectionDescription"),testId:"notification-settings-section",tooltip:n("settings.notifications.hint"),tooltipLinks:[{label:n("settings.notifications.links.notificationSystem"),href:"https://github.com/jrmatherly/shipit/blob/main/specs/021-agent-notifications/spec.yaml"}],children:[(0,t.jsx)(P,{children:n("settings.notifications.channels")}),(0,t.jsx)(I,{label:n("settings.notifications.inAppLabel"),description:n("settings.notifications.inAppDescription"),tooltip:"Master toggle for in-app toast notifications. When disabled, no event toasts will appear regardless of individual event settings below.",id:"notif-in-app",testId:"switch-in-app",checked:a,onChange:e=>{o(e),d(u({inApp:e}))}}),(0,t.jsx)(P,{children:n("settings.notifications.subsections.agentEvents")}),(0,t.jsx)(I,{label:n("settings.notifications.events.agentStarted"),tooltip:"Controls whether you receive an in-app toast notification when an agent begins working on a feature.",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:l.agentStarted,onChange:e=>{let t={...l,agentStarted:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.phaseCompleted"),tooltip:"Controls whether you receive an in-app toast notification when an agent completes a workflow phase (e.g., requirements, planning, implementation).",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:l.phaseCompleted,onChange:e=>{let t={...l,phaseCompleted:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.waitingApproval"),tooltip:"Controls whether you receive an in-app toast notification when a feature is paused and waiting for your approval to continue.",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:l.waitingApproval,onChange:e=>{let t={...l,waitingApproval:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.agentCompleted"),tooltip:"Controls whether you receive an in-app toast notification when an agent finishes all work on a feature successfully.",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:l.agentCompleted,onChange:e=>{let t={...l,agentCompleted:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.agentFailed"),tooltip:"Controls whether you receive an in-app toast notification when an agent encounters an error and stops working on a feature.",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:l.agentFailed,onChange:e=>{let t={...l,agentFailed:e};c(t),d(u({events:t}))}}),(0,t.jsx)(P,{children:n("settings.notifications.subsections.pullRequestEvents")}),(0,t.jsx)(I,{label:n("settings.notifications.events.prMerged"),tooltip:"Controls whether you receive an in-app toast notification when a feature's pull request is merged into the target branch.",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:l.prMerged,onChange:e=>{let t={...l,prMerged:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.prClosed"),tooltip:"Controls whether you receive an in-app toast notification when a feature's pull request is closed without merging.",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:l.prClosed,onChange:e=>{let t={...l,prClosed:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.prChecksPassed"),tooltip:"Controls whether you receive an in-app toast notification when all CI checks pass on a feature's pull request.",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:l.prChecksPassed,onChange:e=>{let t={...l,prChecksPassed:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.prChecksFailed"),tooltip:"Controls whether you receive an in-app toast notification when CI checks fail on a feature's pull request.",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:l.prChecksFailed,onChange:e=>{let t={...l,prChecksFailed:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.prBlocked"),tooltip:"Controls whether you receive an in-app toast notification when a pull request is blocked by merge conflicts or branch protection rules.",id:"notif-event-prBlocked",testId:"switch-event-prBlocked",checked:l.prBlocked,onChange:e=>{let t={...l,prBlocked:e};c(t),d(u({events:t}))}}),(0,t.jsx)(I,{label:n("settings.notifications.events.mergeReviewReady"),tooltip:"Controls whether you receive an in-app toast notification when a feature's PR passes all checks and is ready for your merge review.",id:"notif-event-mergeReviewReady",testId:"switch-event-mergeReviewReady",checked:l.mergeReviewReady,onChange:e=>{let t={...l,mergeReviewReady:e};c(t),d(u({events:t}))}})]})}function eG({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),a=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1,githubImport:!1,adoptBranch:!1,gitRebaseSync:!1,reactFileManager:!1,plugins:!1},[o,l]=(0,i.useState)({...a});function r(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}return(0,t.jsxs)(T,{icon:c,title:n("settings.featureFlags.title"),description:n("settings.featureFlags.sectionDescription"),badge:n("settings.featureFlags.badge"),testId:"feature-flags-settings-section",tooltip:n("settings.featureFlags.hint"),children:[(0,t.jsx)(I,{label:n("settings.featureFlags.skills"),description:n("settings.featureFlags.skillsDescription"),tooltip:"Enables the Skills page in the sidebar for browsing and managing Claude Code skills.",id:"flag-skills",testId:"switch-flag-skills",checked:o.skills,onChange:e=>{let t={...o,skills:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.deployments"),description:n("settings.featureFlags.deploymentsDescription"),tooltip:"Enables experimental deployment features for environment management.",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:o.envDeploy,onChange:e=>{let t={...o,envDeploy:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.debug"),description:n("settings.featureFlags.debugDescription"),tooltip:"Shows additional debugging information in the UI for troubleshooting.",id:"flag-debug",testId:"switch-flag-debug",checked:o.debug,onChange:e=>{let t={...o,debug:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.githubImport"),description:n("settings.featureFlags.githubImportDescription"),tooltip:"Enables importing repositories directly from GitHub.",id:"flag-githubImport",testId:"switch-flag-githubImport",checked:o.githubImport,onChange:e=>{let t={...o,githubImport:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.adoptBranch"),description:n("settings.featureFlags.adoptBranchDescription"),tooltip:"Enables adopting existing git branches as ShipIT features.",id:"flag-adoptBranch",testId:"switch-flag-adoptBranch",checked:o.adoptBranch,onChange:e=>{let t={...o,adoptBranch:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.gitRebaseSync"),description:n("settings.featureFlags.gitRebaseSyncDescription"),tooltip:"Uses git rebase instead of merge when syncing feature branches with the upstream branch.",id:"flag-gitRebaseSync",testId:"switch-flag-gitRebaseSync",checked:o.gitRebaseSync,onChange:e=>{let t={...o,gitRebaseSync:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.reactFileManager"),description:n("settings.featureFlags.reactFileManagerDescription"),tooltip:"Replaces the native file picker dialog with a React-based file browser for selecting project folders.",id:"flag-reactFileManager",testId:"switch-flag-reactFileManager",checked:o.reactFileManager,onChange:e=>{let t={...o,reactFileManager:e};l(t),r({featureFlags:t})}}),(0,t.jsx)(I,{label:n("settings.featureFlags.plugins"),description:n("settings.featureFlags.pluginsDescription"),tooltip:"Enables the Plugins page for browsing and managing Claude Code plugins from a LiteLLM marketplace.",id:"flag-plugins",testId:"switch-flag-plugins",checked:o.plugins,onChange:e=>{let t={...o,plugins:e};l(t),r({featureFlags:t})}})]})}function e$({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),a=e.interactiveAgent??{enabled:!0,autoTimeoutMinutes:15,maxConcurrentSessions:3},[o,l]=(0,i.useState)(a.enabled),[r,c]=(0,i.useState)(String(a.autoTimeoutMinutes)),[d,u]=(0,i.useState)(String(a.maxConcurrentSessions));function h(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}return(0,t.jsxs)(T,{icon:p.MessageSquare,title:n("settings.interactiveAgent.title"),description:n("settings.interactiveAgent.description"),testId:"interactive-agent-settings-section",tooltip:n("settings.interactiveAgent.hint"),children:[(0,t.jsx)(I,{label:n("settings.interactiveAgent.enableChatTab"),description:n("settings.interactiveAgent.enableChatTabDescription"),tooltip:"Shows or hides the Chat tab on feature detail pages. When enabled, you can have interactive conversations with the agent about a specific feature.",id:"interactive-agent-enabled",testId:"switch-interactive-agent-enabled",checked:o,onChange:e=>{l(e),h({interactiveAgent:{enabled:e,autoTimeoutMinutes:parseInt(r,10)||15,maxConcurrentSessions:parseInt(d,10)||3}})}}),(0,t.jsx)(M,{label:n("settings.interactiveAgent.autoTimeout"),description:n("settings.interactiveAgent.autoTimeoutDescription"),tooltip:"Minutes of inactivity before a chat agent session is automatically terminated. Prevents idle agent processes from consuming resources indefinitely.",htmlFor:"interactive-agent-timeout",children:(0,t.jsx)(N,{id:"interactive-agent-timeout",testId:"input-interactive-agent-timeout",value:r,placeholder:"15",min:1,max:120,suffix:"min",onChange:c,onBlur:()=>{let e=parseInt(r,10),t=Number.isNaN(e)?15:Math.min(120,Math.max(1,e));c(String(t)),h({interactiveAgent:{enabled:o,autoTimeoutMinutes:t,maxConcurrentSessions:parseInt(d,10)||3}})}})}),(0,t.jsx)(M,{label:n("settings.interactiveAgent.maxConcurrentSessions"),description:n("settings.interactiveAgent.maxConcurrentSessionsDescription"),tooltip:"Maximum number of interactive agent sessions that can run simultaneously. Each session spawns a separate agent process, so higher values use more CPU and memory.",htmlFor:"interactive-agent-sessions",children:(0,t.jsx)(N,{id:"interactive-agent-sessions",testId:"input-interactive-agent-sessions",value:d,placeholder:"3",min:1,max:10,onChange:u,onBlur:()=>{let e=parseInt(d,10),t=Number.isNaN(e)?3:Math.min(10,Math.max(1,e));u(String(t)),h({interactiveAgent:{enabled:o,autoTimeoutMinutes:parseInt(r,10)||15,maxConcurrentSessions:t}})}})})]})}function eZ({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),a=e.fabLayout??{swapPosition:!1},[o,l]=(0,i.useState)(a.swapPosition);return(0,t.jsx)(T,{icon:h,title:n("settings.fabLayout.title"),description:n("settings.fabLayout.description"),testId:"fab-layout-settings-section",tooltip:n("settings.fabLayout.hint"),children:(0,t.jsx)(I,{label:n("settings.fabLayout.swapPosition"),description:n("settings.fabLayout.swapPositionDescription"),tooltip:"Swaps the Create button (bottom-right) and Chat button (bottom-left) positions on the control center canvas.",id:"fab-swap-position",testId:"switch-fab-swap-position",checked:o,onChange:e=>{var t;l(e),t={fabLayout:{swapPosition:e}},s(async()=>{let e=await L(t);e.success||D.toast.error(e.error??n("settings.failedToSave"))})}})})}function eX({shipitAiHome:e,dbFileSize:i}){let{t:n}=(0,f.useTranslation)("web");return(0,t.jsxs)(T,{icon:d,title:n("settings.database.title"),description:n("settings.database.sectionDescription"),testId:"database-settings-section",tooltip:n("settings.database.hint"),tooltipLinks:[{label:n("settings.database.links.settingsService"),href:"https://github.com/jrmatherly/shipit/blob/main/docs/architecture/settings-service.md"},{label:n("settings.database.links.settingsSpec"),href:"https://github.com/jrmatherly/shipit/blob/main/specs/005-global-settings-service/spec.md"}],children:[(0,t.jsx)(M,{label:n("settings.database.location"),description:n("settings.database.locationDescription"),tooltip:"The directory where ShipIT stores its SQLite database, logs, and configuration files. Change this via the SHIPIT_AI_HOME environment variable.",children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shipit-ai-home-path",children:e})}),(0,t.jsx)(M,{label:n("settings.database.size"),tooltip:"Current size of the SQLite database file on disk. Large databases may slow down startup; consider archiving old features if this grows significantly.",children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:i})})]})}var eY=e.i(37628),eY=eY,eQ=e.i(81391),eQ=eQ;let eJ=(0,R.createServerReference)("40d1eda7fb23ac126ea9175a6550044417de3bd6d1",R.callServer,void 0,R.findSourceMapURL,"addMarketplaceAction");var e0=e.i(98127),e1=e.i(35364);function e3({settings:e}){let{t:n}=(0,f.useTranslation)("web"),[,s]=(0,i.useTransition)(),[a,o]=(0,i.useState)(e.litellmProxy?.baseUrl??""),[l,r]=(0,i.useState)(e.litellmProxy?.apiKey??""),[c,d]=(0,i.useState)(e.litellmProxy?.marketplaceEnabled??!1),[u,p]=(0,i.useState)("idle"),[h,g]=(0,i.useState)(!1),x=e.litellmProxy?.baseUrl??"",b=e.litellmProxy?.apiKey??"";function v(e){s(async()=>{let t=await L(e);t.success||D.toast.error(t.error??n("settings.failedToSave"))})}function w(e){return{litellmProxy:{baseUrl:e?.baseUrl??a,apiKey:e?.apiKey??l,marketplaceEnabled:e?.marketplaceEnabled??c}}}async function y(){if(a){g(!0),p("idle");try{let e=`${a.replace(/\/+$/,"")}/claude-code/marketplace.json`,t=await eJ(e);p(t.success?"success":"failed"),t.success?D.toast.success(n("settings.litellmProxy.testSuccess")):D.toast.error(n("settings.litellmProxy.testFailed"))}catch{p("failed"),D.toast.error(n("settings.litellmProxy.testFailed"))}finally{g(!1)}}}return(0,t.jsxs)(T,{icon:m.Server,title:n("settings.litellmProxy.title"),description:n("settings.litellmProxy.description"),testId:"litellm-proxy-settings-section",tooltip:n("settings.litellmProxy.hint"),children:[(0,t.jsx)(M,{label:n("settings.litellmProxy.baseUrl"),description:n("settings.litellmProxy.baseUrlDescription"),tooltip:"The base URL of your LiteLLM proxy server. This is used to fetch the plugin marketplace catalog and route model requests.",htmlFor:"litellm-proxy-url",children:(0,t.jsx)(e0.Input,{id:"litellm-proxy-url","data-testid":"litellm-proxy-url-input",type:"text",placeholder:"http://localhost:4000",value:a,onChange:e=>{o(e.target.value),p("idle")},onBlur:()=>{a!==x&&v(w({baseUrl:a}))},className:"w-64 text-xs"})}),(0,t.jsx)(M,{label:n("settings.litellmProxy.apiKey"),description:n("settings.litellmProxy.apiKeyDescription"),tooltip:"A virtual API key for authenticating with the LiteLLM proxy. Stored locally alongside other agent credentials.",htmlFor:"litellm-api-key",children:(0,t.jsx)(e0.Input,{id:"litellm-api-key","data-testid":"litellm-api-key-input",type:"password",placeholder:"sk-...",value:l,onChange:e=>r(e.target.value),onBlur:()=>{l!==b&&v(w({apiKey:l}))},className:"w-64 text-xs"})}),(0,t.jsx)(I,{label:n("settings.litellmProxy.marketplaceEnabled"),description:n("settings.litellmProxy.marketplaceEnabledDescription"),tooltip:"When enabled, the plugin marketplace will fetch its catalog from this LiteLLM proxy instead of using built-in defaults.",id:"litellm-marketplace-enabled",testId:"switch-litellm-marketplace-enabled",checked:c,onChange:e=>{d(e),v(w({marketplaceEnabled:e}))}}),(0,t.jsx)(M,{label:n("settings.litellmProxy.testConnection"),tooltip:"Attempt to connect to the proxy and fetch the marketplace catalog to verify the configuration is correct.",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(e1.Button,{variant:"outline",size:"sm","data-testid":"litellm-test-connection-btn",disabled:!a||h,onClick:y,className:"cursor-pointer text-xs",children:h?n("settings.saving"):n("settings.litellmProxy.testConnection")}),"success"===u&&(0,t.jsx)(eY.default,{className:"h-4 w-4 text-emerald-500","data-testid":"litellm-test-success"}),"failed"===u&&(0,t.jsx)(eQ.default,{className:"text-destructive h-4 w-4","data-testid":"litellm-test-failed"})]})})]})}let e4=[{id:"agent",labelKey:"settings.sections.agent",icon:n.Bot},{id:"environment",labelKey:"settings.sections.environment",icon:s.Terminal},{id:"workflow",labelKey:"settings.sections.workflow",icon:a.GitBranch},{id:"ci",labelKey:"settings.sections.ci",icon:o.Activity},{id:"stage-timeouts",labelKey:"settings.sections.timeouts",icon:u.Timer},{id:"notifications",labelKey:"settings.sections.notifications",icon:r},{id:"feature-flags",labelKey:"settings.sections.flags",icon:c},{id:"interactive-agent",labelKey:"settings.sections.chat",icon:p.MessageSquare},{id:"fab-layout",labelKey:"settings.sections.layout",icon:h},{id:"database",labelKey:"settings.sections.database",icon:d},{id:"litellm-proxy",labelKey:"settings.sections.proxy",icon:m.Server}],e5=[{id:"all",labelKey:"settings.sections.all",icon:g},...e4];e.s(["SettingsPageClient",0,function({settings:e,shipitAiHome:n,dbFileSize:s,availableTerminals:a,availableEditors:o,availableShells:l}){let{t:r}=(0,f.useTranslation)("web"),[c,d]=(0,i.useState)("all"),[u,p]=(0,i.useState)("agent");return(0,i.useEffect)(()=>{if("all"!==c)return;let e=e4.map(e=>document.getElementById(`section-${e.id}`)).filter(Boolean);if(0===e.length)return;let t=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&p(t.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let i of e)t.observe(i);return()=>t.disconnect()},[c]),(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl px-8 pt-8",children:[(0,t.jsxs)("div",{className:"bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-10 pb-4 backdrop-blur",children:[(0,t.jsxs)("div",{className:"mb-4 space-y-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-bold tracking-[0.2em] text-slate-400 uppercase",children:"Developer Portal"}),(0,t.jsx)("div",{className:"flex items-baseline gap-3",children:(0,t.jsx)("h1",{className:"text-foreground text-3xl font-black tracking-tight",children:r("settings.title")})})]}),(0,t.jsx)("nav",{className:"bg-card editorial-shadow flex flex-wrap items-center gap-0.5 rounded-lg p-1",children:e5.map(e=>{let i=e.icon,n=c===e.id||"all"===c&&"all"!==e.id&&u===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>d(e.id),className:(0,x.cn)("flex cursor-pointer items-center gap-1 rounded-md px-2 py-1.5 text-[11px] font-bold transition-all",n?"bg-muted text-primary shadow-sm ring-1 ring-slate-200/70 dark:ring-slate-700/50":"text-muted-foreground hover:text-foreground hover:bg-accent/50"),children:[(0,t.jsx)(i,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:r(e.labelKey)})]},e.id)})})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[("all"===c||"agent"===c)&&(0,t.jsx)("div",{id:"section-agent",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(A,{settings:e})}),("all"===c||"environment"===c)&&(0,t.jsx)("div",{id:"section-environment",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(X,{settings:e,availableEditors:o,availableShells:l,availableTerminals:a})}),("all"===c||"workflow"===c)&&(0,t.jsx)("div",{id:"section-workflow",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(Q,{settings:e})}),("all"===c||"ci"===c)&&(0,t.jsx)("div",{id:"section-ci",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(ee,{settings:e})}),("all"===c||"stage-timeouts"===c)&&(0,t.jsx)("div",{id:"section-stage-timeouts",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(eV,{settings:e})}),("all"===c||"notifications"===c)&&(0,t.jsx)("div",{id:"section-notifications",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(e_,{settings:e})}),("all"===c||"feature-flags"===c)&&(0,t.jsx)("div",{id:"section-feature-flags",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(eG,{settings:e})}),("all"===c||"interactive-agent"===c)&&(0,t.jsx)("div",{id:"section-interactive-agent",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(e$,{settings:e})}),("all"===c||"fab-layout"===c)&&(0,t.jsx)("div",{id:"section-fab-layout",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(eZ,{settings:e})}),("all"===c||"database"===c)&&(0,t.jsx)("div",{id:"section-database",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(eX,{shipitAiHome:n,dbFileSize:s})}),("all"===c||"litellm-proxy"===c)&&(0,t.jsx)("div",{id:"section-litellm-proxy",className:"scroll-mt-18 rounded-lg",children:(0,t.jsx)(e3,{settings:e})})]})]})}],41952)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96612,e=>{"use strict";let s=(0,e.i(54864).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,s],96612)},64376,e=>{"use strict";let s=(0,e.i(54864).default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);e.s(["LayoutDashboard",0,s],64376)},50990,e=>{"use strict";let s=(0,e.i(54864).default)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);e.s(["FileEdit",0,s],50990)},24901,e=>{"use strict";let s=(0,e.i(54864).default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);e.s(["FilePlus",0,s],24901)},10661,e=>{"use strict";var s=e.i(96871),t=e.i(16539),a=e.i(33109),r=e.i(17759),i=e.i(70727),n=e.i(63524),l=e.i(96612),o=e.i(96646),d=e.i(92568),c=e.i(67088),x=e.i(85149),h=e.i(79561),m=e.i(64376),p=e.i(85202),u=e.i(60589),g=e.i(64778),j=e.i(60958),b=e.i(23325),f=e.i(54864);let v=(0,f.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var y=e.i(83764),N=e.i(50990),k=e.i(24901);let C=(0,f.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var T=e.i(31777);e.i(1650);var z=e.i(11495);e.i(99348);var w=e.i(17466),P=e.i(2828),L=e.i(68304),S=e.i(74442),M=e.i(8537),R=e.i(75921),D=e.i(28112),F=e.i(96976);let B=(0,F.createServerReference)("60d3ed982d6f96da3b927587dbcb1762909b73b25d",F.callServer,void 0,F.findSourceMapURL,"getGitRepoInfo"),I="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",A="bg-border/60 mx-1.5 h-5 w-px shrink-0";function O({icon:e,title:t,children:a}){return(0,s.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,s.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,s.jsx)(e,{className:"size-4 opacity-50"}),t]}),a]})}function $({children:e,className:t}){return(0,s.jsx)("div",{className:(0,T.cn)("bg-muted/60 rounded-md border border-transparent p-3",t),children:e})}function E({label:e,children:t}){return(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:e}),(0,s.jsx)("span",{className:"text-sm leading-snug",children:t})]})}function H({data:e,syncError:a}){let[r,i]=(0,t.useState)(null),[n,l]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{if(!e.repositoryPath)return;let s=!1;return l(!0),B(e.repositoryPath,8).then(e=>{s||i(e)}).catch(()=>{}).finally(()=>{s||l(!1)}),()=>{s=!0}},[e.repositoryPath]),!e.repositoryPath)return null;let o=r?.workingTree,d=o&&(o.staged>0||o.modified>0||o.untracked>0),c=r?.diffStats;return(0,s.jsxs)("div",{className:"pb-4",children:[n?(0,s.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,s.jsx)(h.LoaderCircle,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,r?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,s.jsx)($,{children:(0,s.jsxs)(E,{label:"Branch",children:[(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,s.jsx)(u.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,s.jsx)("code",{className:"font-mono text-sm",children:r.currentBranch??e.branch??"—"})]}),null!=e.behindCount&&e.behindCount>0?(0,s.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[e.behindCount," behind default"]}):null]})}),(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Working Tree",children:d?(0,s.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[o.staged>0?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,s.jsx)(C,{className:"size-3.5"})," ",o.staged," staged"]}):null,o.modified>0?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,s.jsx)(N.FileEdit,{className:"size-3.5"})," ",o.modified," modified"]}):null,o.untracked>0?(0,s.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,s.jsx)(k.FilePlus,{className:"size-3.5"})," ",o.untracked," untracked"]}):null]}):(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,s.jsx)(x.Check,{className:"size-3.5"})," Clean"]})})}),c?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Uncommitted Changes",children:(0,s.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,s.jsxs)("span",{children:[c.filesChanged," file",1!==c.filesChanged?"s":""]}),(0,s.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",c.insertions]}),(0,s.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",c.deletions]})]})})}):null,r.remotes.length>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Remote",children:r.remotes.map(e=>(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,s.jsx)(b.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,s.jsx)("span",{className:"truncate",children:e.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},e.name))})}):null,r.stashCount>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Stashes",children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,s.jsx)(y.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),r.stashCount," stash",1!==r.stashCount?"es":""]})})}):null,r.tags.length>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Tags",children:(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.tags.map(e=>(0,s.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,s.jsx)(v,{className:"text-foreground/30 size-2.5"}),e]},e))})})}):null]}):null,r&&r.commits.length>0?(0,s.jsx)(O,{icon:g.GitCommitHorizontal,title:"Recent Commits",children:(0,s.jsxs)("div",{className:"relative ml-3",children:[(0,s.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),r.commits.map((e,t)=>(0,s.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,s.jsx)("div",{className:(0,T.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===t?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,s.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:e.subject}),(0,s.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:e.shortHash})]}),(0,s.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{children:e.author}),(0,s.jsx)("span",{children:"·"}),(0,s.jsx)("span",{children:e.relativeDate}),e.branch?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{children:"·"}),(0,s.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,s.jsx)(u.GitBranch,{className:"size-3"}),e.branch]})]}):null]})]})]},e.hash))]})}):null,r&&r.branches.length>1?(0,s.jsx)(O,{icon:u.GitBranch,title:"Branches",children:(0,s.jsx)("div",{className:"flex flex-col",children:[...r.branches].sort((e,s)=>{let t,a,r,i;return e.isCurrent&&!s.isCurrent?-1:!e.isCurrent&&s.isCurrent?1:(t=e.name,/^(main|master)$/.test(t)&&(a=s.name,!/^(main|master)$/.test(a)))?-1:+(r=e.name,!!(!/^(main|master)$/.test(r)&&(i=s.name,/^(main|master)$/.test(i))))}).map(e=>(0,s.jsxs)("div",{className:(0,T.cn)("flex items-center justify-between rounded px-2 py-1.5",e.isCurrent&&"bg-muted/60"),children:[(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[e.isCurrent?(0,s.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(e.name)?(0,s.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,s.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,s.jsx)("code",{className:"font-mono text-[13px]",children:e.name}),e.isCurrent?(0,s.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,s.jsx)("span",{className:"text-foreground/40 text-xs",children:e.lastCommitDate})]},e.name))})}):null,a?(0,s.jsx)(O,{icon:j.TriangleAlert,title:"Issues",children:(0,s.jsx)($,{className:"bg-destructive/5 border-transparent",children:(0,s.jsx)("p",{className:"text-destructive text-sm",children:a})})}):null]})}e.s(["RepositoryDrawerClient",0,function({data:e,initialTab:u}){let g=(0,R.useFeatureFlags)(),j=(0,a.useRouter)(),b=(0,a.usePathname)().startsWith("/repository/"),[f,v]=(0,t.useState)(u??"overview"),[y,N]=(0,t.useState)(!1),k=(0,S.useRepositoryActions)(e.repositoryPath?{repositoryId:e.id,repositoryPath:e.repositoryPath}:null),C=(0,t.useCallback)(()=>{j.push("/")},[j]),F=(0,M.useDeployAction)(e.repositoryPath?{targetId:e.repositoryPath,targetType:"repository",repositoryPath:e.repositoryPath}:null),B="Booting"===F.status||"Ready"===F.status,O=(0,t.useCallback)(()=>{e.repositoryPath&&(navigator.clipboard.writeText(e.repositoryPath),N(!0),setTimeout(()=>N(!1),2e3))},[e.repositoryPath]),$=e.id?`repo-${e.id}`:`repo-${e.name}`;return(0,s.jsx)(z.BaseDrawer,{open:b,onClose:C,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,s.jsxs)(L.Tabs,{value:f,onValueChange:v,className:"flex min-h-0 flex-1 flex-col",children:[(0,s.jsxs)(L.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,s.jsxs)(L.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,s.jsx)(m.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,s.jsxs)(L.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,s.jsx)(p.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,s.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,s.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:e.name}),e.repositoryPath?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,s.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:e.repositoryPath})]}):null]}),e.repositoryPath?(0,s.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,s.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,s.jsxs)(P.TooltipProvider,{delayDuration:300,children:[(0,s.jsxs)("div",{className:"flex items-center",children:[(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openInIde,disabled:k.ideLoading,"aria-label":"Open in IDE",children:k.ideLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(r.Code2,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openInShell,disabled:k.shellLoading,"aria-label":"Open terminal",children:k.shellLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(i.Terminal,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openFolder,disabled:k.folderLoading,"aria-label":"Open folder",children:k.folderLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(n.FolderOpen,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:O,"aria-label":"Copy path",children:y?(0,s.jsx)(x.Check,{className:"size-3.5 text-green-500"}):(0,s.jsx)(c.Copy,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:y?"Copied!":"Copy path"})]})]}),e.id&&g.gitRebaseSync?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:A}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.syncMain,disabled:k.syncLoading,"aria-label":"Sync main",children:k.syncLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(l.RefreshCw,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,g.envDeploy?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:A}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",disabled:F.deployLoading||F.stopLoading,onClick:B?F.stop:F.deploy,className:(0,T.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",B?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":B?"Stop dev server":"Start dev server",children:F.deployLoading||F.stopLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):B?(0,s.jsx)(d.Square,{className:"size-4"}):(0,s.jsx)(o.Play,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:B?"Stop dev server":"Start dev server"})]}),B?(0,s.jsx)(w.DeploymentStatusBadge,{status:F.status,url:F.url,targetId:e.repositoryPath}):null]}):null]}),(0,s.jsx)("div",{className:"flex-1"})]})}):null]}),(0,s.jsx)(L.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,s.jsx)(H,{data:e,syncError:k.syncError})}),(0,s.jsx)(L.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,s.jsx)(D.ChatTab,{featureId:$,worktreePath:e.repositoryPath})})]})})}],10661)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96612,e=>{"use strict";let s=(0,e.i(54864).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,s],96612)},64376,e=>{"use strict";let s=(0,e.i(54864).default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);e.s(["LayoutDashboard",0,s],64376)},50990,e=>{"use strict";let s=(0,e.i(54864).default)("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);e.s(["FileEdit",0,s],50990)},24901,e=>{"use strict";let s=(0,e.i(54864).default)("file-plus",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);e.s(["FilePlus",0,s],24901)},10661,e=>{"use strict";var s=e.i(96871),t=e.i(16539),a=e.i(33109),r=e.i(17759),i=e.i(70727),n=e.i(63524),l=e.i(96612),o=e.i(96646),d=e.i(92568),c=e.i(67088),x=e.i(85149),h=e.i(79561),m=e.i(64376),p=e.i(85202),u=e.i(60589),g=e.i(64778),j=e.i(60958),b=e.i(23325),f=e.i(54864);let v=(0,f.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var y=e.i(83764),N=e.i(50990),k=e.i(24901);let C=(0,f.default)("file-check-corner",[["path",{d:"M10.5 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v6",key:"g5mvt7"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14 20 2 2 4-4",key:"15kota"}]]);var T=e.i(31777);e.i(1650);var z=e.i(11495);e.i(99348);var w=e.i(17466),P=e.i(2828),L=e.i(68304),S=e.i(74442),M=e.i(8537),R=e.i(75921),D=e.i(28112),F=e.i(96976);let B=(0,F.createServerReference)("606bc618168107f547236e456685b2165dc6e30c16",F.callServer,void 0,F.findSourceMapURL,"getGitRepoInfo"),I="text-muted-foreground hover:bg-foreground/8 hover:text-foreground inline-flex size-8 items-center justify-center rounded-[3px] disabled:opacity-40",A="bg-border/60 mx-1.5 h-5 w-px shrink-0";function O({icon:e,title:t,children:a}){return(0,s.jsxs)("div",{className:"px-3 pt-4 pb-1",children:[(0,s.jsxs)("div",{className:"text-foreground mb-2 flex items-center gap-1.5 text-sm font-semibold tracking-wider uppercase",children:[(0,s.jsx)(e,{className:"size-4 opacity-50"}),t]}),a]})}function $({children:e,className:t}){return(0,s.jsx)("div",{className:(0,T.cn)("bg-muted/60 rounded-md border border-transparent p-3",t),children:e})}function E({label:e,children:t}){return(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsx)("span",{className:"text-foreground/40 text-[11px] font-medium tracking-wider uppercase",children:e}),(0,s.jsx)("span",{className:"text-sm leading-snug",children:t})]})}function H({data:e,syncError:a}){let[r,i]=(0,t.useState)(null),[n,l]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{if(!e.repositoryPath)return;let s=!1;return l(!0),B(e.repositoryPath,8).then(e=>{s||i(e)}).catch(()=>{}).finally(()=>{s||l(!1)}),()=>{s=!0}},[e.repositoryPath]),!e.repositoryPath)return null;let o=r?.workingTree,d=o&&(o.staged>0||o.modified>0||o.untracked>0),c=r?.diffStats;return(0,s.jsxs)("div",{className:"pb-4",children:[n?(0,s.jsxs)("div",{className:"text-foreground/40 flex items-center gap-2 px-4 py-8 text-sm",children:[(0,s.jsx)(h.LoaderCircle,{className:"size-4 animate-spin"})," Loading repository info..."]}):null,r?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 px-3 pt-3",children:[(0,s.jsx)($,{children:(0,s.jsxs)(E,{label:"Branch",children:[(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,s.jsx)(u.GitBranch,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,s.jsx)("code",{className:"font-mono text-sm",children:r.currentBranch??e.branch??"—"})]}),null!=e.behindCount&&e.behindCount>0?(0,s.jsxs)("span",{className:"mt-0.5 block text-xs text-orange-600 dark:text-orange-400",children:[e.behindCount," behind default"]}):null]})}),(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Working Tree",children:d?(0,s.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5",children:[o.staged>0?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-green-600 dark:text-green-400",children:[(0,s.jsx)(C,{className:"size-3.5"})," ",o.staged," staged"]}):null,o.modified>0?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 text-sm text-amber-600 dark:text-amber-400",children:[(0,s.jsx)(N.FileEdit,{className:"size-3.5"})," ",o.modified," modified"]}):null,o.untracked>0?(0,s.jsxs)("span",{className:"text-foreground/50 inline-flex items-center gap-1 text-sm",children:[(0,s.jsx)(k.FilePlus,{className:"size-3.5"})," ",o.untracked," untracked"]}):null]}):(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-green-600 dark:text-green-400",children:[(0,s.jsx)(x.Check,{className:"size-3.5"})," Clean"]})})}),c?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Uncommitted Changes",children:(0,s.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,s.jsxs)("span",{children:[c.filesChanged," file",1!==c.filesChanged?"s":""]}),(0,s.jsxs)("span",{className:"text-green-600 dark:text-green-400",children:["+",c.insertions]}),(0,s.jsxs)("span",{className:"text-red-500 dark:text-red-400",children:["-",c.deletions]})]})})}):null,r.remotes.length>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Remote",children:r.remotes.map(e=>(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,s.jsx)(b.Globe,{className:"text-foreground/30 size-3.5 shrink-0"}),(0,s.jsx)("span",{className:"truncate",children:e.url.replace(/\.git$/,"").replace(/^https?:\/\/([^@]+@)?/,"").replace(/x-access-token:[^@]+@/,"")})]},e.name))})}):null,r.stashCount>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Stashes",children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[(0,s.jsx)(y.Archive,{className:"text-foreground/30 size-3.5 shrink-0"}),r.stashCount," stash",1!==r.stashCount?"es":""]})})}):null,r.tags.length>0?(0,s.jsx)($,{children:(0,s.jsx)(E,{label:"Tags",children:(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.tags.map(e=>(0,s.jsxs)("span",{className:"bg-foreground/[0.04] inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-xs",children:[(0,s.jsx)(v,{className:"text-foreground/30 size-2.5"}),e]},e))})})}):null]}):null,r&&r.commits.length>0?(0,s.jsx)(O,{icon:g.GitCommitHorizontal,title:"Recent Commits",children:(0,s.jsxs)("div",{className:"relative ml-3",children:[(0,s.jsx)("div",{className:"bg-border absolute top-2 bottom-2 left-[5px] w-px"}),r.commits.map((e,t)=>(0,s.jsxs)("div",{className:"group relative flex gap-3 py-1.5",children:[(0,s.jsx)("div",{className:(0,T.cn)("relative z-10 mt-1.5 size-[11px] shrink-0 rounded-full border-2",0===t?"border-primary bg-primary":"border-border bg-background group-hover:border-foreground/30")}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,s.jsx)("p",{className:"min-w-0 truncate text-sm leading-snug",children:e.subject}),(0,s.jsx)("code",{className:"text-foreground/30 shrink-0 font-mono text-[11px]",children:e.shortHash})]}),(0,s.jsxs)("div",{className:"text-foreground/40 mt-0.5 flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{children:e.author}),(0,s.jsx)("span",{children:"·"}),(0,s.jsx)("span",{children:e.relativeDate}),e.branch?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{children:"·"}),(0,s.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,s.jsx)(u.GitBranch,{className:"size-3"}),e.branch]})]}):null]})]})]},e.hash))]})}):null,r&&r.branches.length>1?(0,s.jsx)(O,{icon:u.GitBranch,title:"Branches",children:(0,s.jsx)("div",{className:"flex flex-col",children:[...r.branches].sort((e,s)=>{let t,a,r,i;return e.isCurrent&&!s.isCurrent?-1:!e.isCurrent&&s.isCurrent?1:(t=e.name,/^(main|master)$/.test(t)&&(a=s.name,!/^(main|master)$/.test(a)))?-1:+(r=e.name,!!(!/^(main|master)$/.test(r)&&(i=s.name,/^(main|master)$/.test(i))))}).map(e=>(0,s.jsxs)("div",{className:(0,T.cn)("flex items-center justify-between rounded px-2 py-1.5",e.isCurrent&&"bg-muted/60"),children:[(0,s.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm",children:[e.isCurrent?(0,s.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-green-500"}):/^(main|master)$/.test(e.name)?(0,s.jsx)("span",{className:"size-2 shrink-0 rounded-full bg-blue-500"}):(0,s.jsx)("span",{className:"bg-foreground/10 size-2 shrink-0 rounded-full"}),(0,s.jsx)("code",{className:"font-mono text-[13px]",children:e.name}),e.isCurrent?(0,s.jsx)("span",{className:"text-foreground/40 text-[10px]",children:"current"}):null]}),(0,s.jsx)("span",{className:"text-foreground/40 text-xs",children:e.lastCommitDate})]},e.name))})}):null,a?(0,s.jsx)(O,{icon:j.TriangleAlert,title:"Issues",children:(0,s.jsx)($,{className:"bg-destructive/5 border-transparent",children:(0,s.jsx)("p",{className:"text-destructive text-sm",children:a})})}):null]})}e.s(["RepositoryDrawerClient",0,function({data:e,initialTab:u}){let g=(0,R.useFeatureFlags)(),j=(0,a.useRouter)(),b=(0,a.usePathname)().startsWith("/repository/"),[f,v]=(0,t.useState)(u??"overview"),[y,N]=(0,t.useState)(!1),k=(0,S.useRepositoryActions)(e.repositoryPath?{repositoryId:e.id,repositoryPath:e.repositoryPath}:null),C=(0,t.useCallback)(()=>{j.push("/")},[j]),F=(0,M.useDeployAction)(e.repositoryPath?{targetId:e.repositoryPath,targetType:"repository",repositoryPath:e.repositoryPath}:null),B="Booting"===F.status||"Ready"===F.status,O=(0,t.useCallback)(()=>{e.repositoryPath&&(navigator.clipboard.writeText(e.repositoryPath),N(!0),setTimeout(()=>N(!1),2e3))},[e.repositoryPath]),$=e.id?`repo-${e.id}`:`repo-${e.name}`;return(0,s.jsx)(z.BaseDrawer,{open:b,onClose:C,size:"lg",modal:!1,"data-testid":"repository-drawer",children:(0,s.jsxs)(L.Tabs,{value:f,onValueChange:v,className:"flex min-h-0 flex-1 flex-col",children:[(0,s.jsxs)(L.TabsList,{className:"bg-muted/50 h-auto w-full shrink-0 justify-start gap-0 rounded-none border-b p-0",children:[(0,s.jsxs)(L.TabsTrigger,{value:"overview",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,s.jsx)(m.LayoutDashboard,{className:"mr-1.5 size-4"}),"Overview"]}),(0,s.jsxs)(L.TabsTrigger,{value:"chat",className:"text-muted-foreground hover:bg-muted hover:text-foreground data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:border-t-primary [&:not([data-state=active])]:border-r-border relative h-auto rounded-none border-t-2 border-r border-t-transparent border-r-transparent bg-transparent px-3.5 py-2.5 text-[13px] font-normal shadow-none transition-none last:border-r-transparent data-[state=active]:shadow-none",children:[(0,s.jsx)(p.MessageSquare,{className:"mr-1.5 size-4"}),"Chat"]})]}),(0,s.jsxs)("div",{className:"bg-muted/40 shrink-0 border-b",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-4 pe-10 pt-2.5 pb-2","data-testid":"repository-drawer-header",children:[(0,s.jsx)("h2",{className:"text-foreground min-w-0 truncate text-base font-semibold tracking-tight",children:e.name}),e.repositoryPath?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"text-muted-foreground/40 text-xs",children:"/"}),(0,s.jsx)("span",{className:"text-muted-foreground min-w-0 truncate font-mono text-[11px]",children:e.repositoryPath})]}):null]}),e.repositoryPath?(0,s.jsx)("div",{"data-testid":"repository-drawer-toolbar",children:(0,s.jsxs)("div",{className:"flex h-9 items-center px-1.5",children:[(0,s.jsxs)(P.TooltipProvider,{delayDuration:300,children:[(0,s.jsxs)("div",{className:"flex items-center",children:[(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openInIde,disabled:k.ideLoading,"aria-label":"Open in IDE",children:k.ideLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(r.Code2,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open in IDE"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openInShell,disabled:k.shellLoading,"aria-label":"Open terminal",children:k.shellLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(i.Terminal,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open terminal"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.openFolder,disabled:k.folderLoading,"aria-label":"Open folder",children:k.folderLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(n.FolderOpen,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Open folder"})]}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:O,"aria-label":"Copy path",children:y?(0,s.jsx)(x.Check,{className:"size-3.5 text-green-500"}):(0,s.jsx)(c.Copy,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:y?"Copied!":"Copy path"})]})]}),e.id&&g.gitRebaseSync?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:A}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",className:I,onClick:k.syncMain,disabled:k.syncLoading,"aria-label":"Sync main",children:k.syncLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):(0,s.jsx)(l.RefreshCw,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:"Sync main"})]})]}):null,g.envDeploy?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:A}),(0,s.jsxs)(P.Tooltip,{children:[(0,s.jsx)(P.TooltipTrigger,{asChild:!0,children:(0,s.jsx)("button",{type:"button",disabled:F.deployLoading||F.stopLoading,onClick:B?F.stop:F.deploy,className:(0,T.cn)("inline-flex size-7 items-center justify-center rounded-[3px] disabled:opacity-40",B?"text-red-500 hover:bg-red-500/10 hover:text-red-400":"text-green-500 hover:bg-green-500/10 hover:text-green-400"),"aria-label":B?"Stop dev server":"Start dev server",children:F.deployLoading||F.stopLoading?(0,s.jsx)(h.LoaderCircle,{className:"size-3.5 animate-spin"}):B?(0,s.jsx)(d.Square,{className:"size-4"}):(0,s.jsx)(o.Play,{className:"size-4"})})}),(0,s.jsx)(P.TooltipContent,{side:"bottom",className:"text-xs",children:B?"Stop dev server":"Start dev server"})]}),B?(0,s.jsx)(w.DeploymentStatusBadge,{status:F.status,url:F.url,targetId:e.repositoryPath}):null]}):null]}),(0,s.jsx)("div",{className:"flex-1"})]})}):null]}),(0,s.jsx)(L.TabsContent,{value:"overview",className:"mt-0 flex-1 overflow-y-auto",children:(0,s.jsx)(H,{data:e,syncError:k.syncError})}),(0,s.jsx)(L.TabsContent,{value:"chat",className:"mt-0 flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,s.jsx)(D.ChatTab,{featureId:$,worktreePath:e.repositoryPath})})]})})}],10661)}]);