@shipit-ai/cli 1.164.2 → 1.165.0-pr10.fb1e062

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 (598) hide show
  1. package/README.md +3 -7
  2. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts +54 -0
  3. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts.map +1 -0
  4. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.js +8 -0
  5. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  6. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/ports/output/services/tool-metadata-service.interface.d.ts +5 -1
  8. package/dist/packages/core/src/application/ports/output/services/tool-metadata-service.interface.d.ts.map +1 -1
  9. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.d.ts +1 -1
  10. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.js +1 -1
  11. package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.d.ts +1 -1
  12. package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.js +1 -1
  13. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +1 -1
  14. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +1 -1
  15. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts +18 -0
  16. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts.map +1 -0
  17. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.js +40 -0
  18. package/dist/packages/core/src/application/use-cases/settings/index.d.ts +1 -0
  19. package/dist/packages/core/src/application/use-cases/settings/index.d.ts.map +1 -1
  20. package/dist/packages/core/src/application/use-cases/settings/index.js +1 -0
  21. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.d.ts +10 -4
  22. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -1
  23. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.js +34 -7
  24. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +1 -1
  25. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
  26. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts +18 -2
  27. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  28. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +16 -5
  29. package/dist/packages/core/src/index.d.ts +2 -2
  30. package/dist/packages/core/src/index.js +2 -2
  31. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +2 -0
  33. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
  34. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +2 -0
  35. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +4 -0
  37. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts +1 -1
  38. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.js +1 -1
  39. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts +1 -1
  40. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.js +1 -1
  41. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts +2 -2
  42. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts.map +1 -1
  43. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.js +5 -5
  44. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts +2 -2
  45. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts.map +1 -1
  46. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.js +6 -6
  47. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts +1 -1
  48. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.js +1 -1
  49. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +1 -1
  50. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +1 -1
  51. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts +38 -0
  52. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts.map +1 -0
  53. package/dist/packages/core/src/infrastructure/services/environment-detector.service.js +196 -0
  54. package/dist/packages/core/src/infrastructure/services/filesystem/shipit-ai-directory.service.d.ts +2 -2
  55. package/dist/packages/core/src/infrastructure/services/filesystem/shipit-ai-directory.service.js +4 -4
  56. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +4 -4
  57. package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +4 -4
  58. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.d.ts +1 -1
  59. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.js +7 -7
  60. package/dist/packages/core/src/infrastructure/services/port.service.d.ts +1 -1
  61. package/dist/packages/core/src/infrastructure/services/port.service.d.ts.map +1 -1
  62. package/dist/packages/core/src/infrastructure/services/port.service.js +1 -1
  63. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +6 -1
  64. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
  65. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.js +7 -0
  66. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.d.ts +1 -0
  67. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.d.ts.map +1 -1
  68. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.js +4 -1
  69. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/CLAUDE.md +2 -1
  70. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +20 -0
  71. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/codex-cli.json +31 -0
  72. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +19 -0
  73. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +24 -0
  74. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +19 -0
  75. package/dist/src/presentation/cli/commands/agent/approve.command.d.ts +1 -1
  76. package/dist/src/presentation/cli/commands/agent/approve.command.js +1 -1
  77. package/dist/src/presentation/cli/commands/agent/delete.command.d.ts +1 -1
  78. package/dist/src/presentation/cli/commands/agent/delete.command.js +1 -1
  79. package/dist/src/presentation/cli/commands/agent/index.d.ts +6 -6
  80. package/dist/src/presentation/cli/commands/agent/index.js +6 -6
  81. package/dist/src/presentation/cli/commands/agent/logs.command.d.ts +3 -3
  82. package/dist/src/presentation/cli/commands/agent/logs.command.js +3 -3
  83. package/dist/src/presentation/cli/commands/agent/ls.command.d.ts +1 -1
  84. package/dist/src/presentation/cli/commands/agent/ls.command.js +1 -1
  85. package/dist/src/presentation/cli/commands/agent/reject.command.d.ts +1 -1
  86. package/dist/src/presentation/cli/commands/agent/reject.command.js +1 -1
  87. package/dist/src/presentation/cli/commands/agent/show.command.d.ts +1 -1
  88. package/dist/src/presentation/cli/commands/agent/show.command.js +1 -1
  89. package/dist/src/presentation/cli/commands/agent/stop.command.d.ts +1 -1
  90. package/dist/src/presentation/cli/commands/agent/stop.command.js +1 -1
  91. package/dist/src/presentation/cli/commands/daemon/start-daemon.d.ts +4 -4
  92. package/dist/src/presentation/cli/commands/daemon/start-daemon.js +4 -4
  93. package/dist/src/presentation/cli/commands/daemon/stop-daemon.d.ts +5 -5
  94. package/dist/src/presentation/cli/commands/daemon/stop-daemon.js +5 -5
  95. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts +3 -3
  96. package/dist/src/presentation/cli/commands/feat/adopt.command.js +3 -3
  97. package/dist/src/presentation/cli/commands/feat/approve.command.d.ts +1 -1
  98. package/dist/src/presentation/cli/commands/feat/approve.command.js +1 -1
  99. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts +3 -3
  100. package/dist/src/presentation/cli/commands/feat/archive.command.js +3 -3
  101. package/dist/src/presentation/cli/commands/feat/del.command.d.ts +5 -5
  102. package/dist/src/presentation/cli/commands/feat/del.command.js +5 -5
  103. package/dist/src/presentation/cli/commands/feat/index.d.ts +4 -4
  104. package/dist/src/presentation/cli/commands/feat/index.js +4 -4
  105. package/dist/src/presentation/cli/commands/feat/logs.command.d.ts +3 -3
  106. package/dist/src/presentation/cli/commands/feat/logs.command.js +3 -3
  107. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts +3 -3
  108. package/dist/src/presentation/cli/commands/feat/ls.command.js +3 -3
  109. package/dist/src/presentation/cli/commands/feat/new.command.d.ts +3 -3
  110. package/dist/src/presentation/cli/commands/feat/new.command.js +4 -4
  111. package/dist/src/presentation/cli/commands/feat/reject.command.d.ts +1 -1
  112. package/dist/src/presentation/cli/commands/feat/reject.command.js +1 -1
  113. package/dist/src/presentation/cli/commands/feat/resume.command.d.ts +1 -1
  114. package/dist/src/presentation/cli/commands/feat/resume.command.js +1 -1
  115. package/dist/src/presentation/cli/commands/feat/review.command.d.ts +1 -1
  116. package/dist/src/presentation/cli/commands/feat/review.command.js +1 -1
  117. package/dist/src/presentation/cli/commands/feat/show.command.d.ts +1 -1
  118. package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
  119. package/dist/src/presentation/cli/commands/feat/show.command.js +4 -3
  120. package/dist/src/presentation/cli/commands/feat/start.command.d.ts +1 -1
  121. package/dist/src/presentation/cli/commands/feat/start.command.js +1 -1
  122. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts +2 -2
  123. package/dist/src/presentation/cli/commands/feat/unarchive.command.js +2 -2
  124. package/dist/src/presentation/cli/commands/ide-open.command.d.ts +1 -1
  125. package/dist/src/presentation/cli/commands/ide-open.command.js +1 -1
  126. package/dist/src/presentation/cli/commands/log-viewer.d.ts +1 -1
  127. package/dist/src/presentation/cli/commands/log-viewer.js +1 -1
  128. package/dist/src/presentation/cli/commands/repo/add.command.d.ts +3 -3
  129. package/dist/src/presentation/cli/commands/repo/add.command.js +3 -3
  130. package/dist/src/presentation/cli/commands/repo/index.d.ts +4 -4
  131. package/dist/src/presentation/cli/commands/repo/index.js +4 -4
  132. package/dist/src/presentation/cli/commands/repo/ls.command.d.ts +1 -1
  133. package/dist/src/presentation/cli/commands/repo/ls.command.js +1 -1
  134. package/dist/src/presentation/cli/commands/repo/show.command.d.ts +1 -1
  135. package/dist/src/presentation/cli/commands/repo/show.command.js +1 -1
  136. package/dist/src/presentation/cli/commands/restart.command.d.ts +3 -3
  137. package/dist/src/presentation/cli/commands/restart.command.js +5 -5
  138. package/dist/src/presentation/cli/commands/run.command.d.ts +5 -5
  139. package/dist/src/presentation/cli/commands/run.command.js +5 -5
  140. package/dist/src/presentation/cli/commands/session/index.d.ts +3 -3
  141. package/dist/src/presentation/cli/commands/session/index.js +3 -3
  142. package/dist/src/presentation/cli/commands/session/ls.command.d.ts +6 -6
  143. package/dist/src/presentation/cli/commands/session/ls.command.js +6 -6
  144. package/dist/src/presentation/cli/commands/session/show.command.d.ts +3 -3
  145. package/dist/src/presentation/cli/commands/session/show.command.js +3 -3
  146. package/dist/src/presentation/cli/commands/settings/agent.command.d.ts +4 -4
  147. package/dist/src/presentation/cli/commands/settings/agent.command.js +7 -7
  148. package/dist/src/presentation/cli/commands/settings/ide.command.d.ts +3 -3
  149. package/dist/src/presentation/cli/commands/settings/ide.command.js +6 -6
  150. package/dist/src/presentation/cli/commands/settings/index.d.ts +10 -10
  151. package/dist/src/presentation/cli/commands/settings/index.js +10 -10
  152. package/dist/src/presentation/cli/commands/settings/init.command.d.ts +3 -3
  153. package/dist/src/presentation/cli/commands/settings/init.command.js +6 -6
  154. package/dist/src/presentation/cli/commands/settings/language.command.d.ts +2 -2
  155. package/dist/src/presentation/cli/commands/settings/language.command.js +3 -3
  156. package/dist/src/presentation/cli/commands/settings/model.command.d.ts +2 -2
  157. package/dist/src/presentation/cli/commands/settings/model.command.js +3 -3
  158. package/dist/src/presentation/cli/commands/settings/show.command.d.ts +4 -4
  159. package/dist/src/presentation/cli/commands/settings/show.command.js +7 -7
  160. package/dist/src/presentation/cli/commands/settings/workflow.command.d.ts +3 -3
  161. package/dist/src/presentation/cli/commands/settings/workflow.command.js +6 -6
  162. package/dist/src/presentation/cli/commands/start.command.d.ts +3 -3
  163. package/dist/src/presentation/cli/commands/start.command.js +5 -5
  164. package/dist/src/presentation/cli/commands/status.command.d.ts +4 -4
  165. package/dist/src/presentation/cli/commands/status.command.js +4 -4
  166. package/dist/src/presentation/cli/commands/stop.command.d.ts +2 -2
  167. package/dist/src/presentation/cli/commands/stop.command.js +2 -2
  168. package/dist/src/presentation/cli/commands/tools.command.d.ts +1 -1
  169. package/dist/src/presentation/cli/commands/tools.command.js +1 -1
  170. package/dist/src/presentation/cli/commands/ui.command.d.ts +4 -4
  171. package/dist/src/presentation/cli/commands/ui.command.js +7 -7
  172. package/dist/src/presentation/cli/commands/upgrade.command.d.ts +2 -2
  173. package/dist/src/presentation/cli/commands/upgrade.command.js +2 -2
  174. package/dist/src/presentation/cli/commands/version.command.d.ts +2 -2
  175. package/dist/src/presentation/cli/commands/version.command.js +2 -2
  176. package/dist/src/presentation/cli/index.d.ts +3 -3
  177. package/dist/src/presentation/cli/index.js +4 -4
  178. package/dist/src/presentation/cli/ui/index.d.ts +1 -1
  179. package/dist/src/presentation/cli/ui/index.js +1 -1
  180. package/dist/src/presentation/tui/themes/shipit-ai.theme.d.ts +4 -4
  181. package/dist/src/presentation/tui/themes/shipit-ai.theme.js +4 -4
  182. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  183. package/dist/src/presentation/web/app/actions/check-agent-auth.js +69 -24
  184. package/dist/src/presentation/web/app/actions/deploy-feature.js +2 -2
  185. package/dist/src/presentation/web/app/actions/deploy-repository.js +2 -2
  186. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts +1 -0
  187. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  188. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +28 -3
  189. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts +14 -0
  190. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts.map +1 -0
  191. package/dist/src/presentation/web/app/actions/get-available-editors.js +24 -0
  192. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts +14 -0
  193. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts.map +1 -0
  194. package/dist/src/presentation/web/app/actions/get-available-shells.js +22 -0
  195. package/dist/src/presentation/web/app/actions/get-merge-review-data.js +3 -3
  196. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  197. package/dist/src/presentation/web/app/layout.js +4 -13
  198. package/dist/src/presentation/web/app/settings/page.d.ts.map +1 -1
  199. package/dist/src/presentation/web/app/settings/page.js +6 -2
  200. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +1 -1
  201. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +1 -1
  202. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +1 -1
  203. package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.js +1 -1
  204. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +1 -1
  205. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -1
  206. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +2 -2
  207. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +8 -8
  208. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.js +1 -1
  209. package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.js +5 -5
  210. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +8 -8
  211. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -1
  212. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.d.ts +2 -2
  213. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.d.ts.map +1 -1
  214. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.js +1 -1
  215. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shep-logo.d.ts → shipit-ai-logo.d.ts} +1 -1
  216. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +1 -0
  217. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +8 -0
  218. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shep-logo.stories.d.ts → shipit-ai-logo.stories.d.ts} +2 -2
  219. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.stories.d.ts.map +1 -0
  220. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shep-logo.stories.js → shipit-ai-logo.stories.js} +1 -1
  221. package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.js +2 -2
  222. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +1 -1
  223. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
  224. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  225. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +6 -1
  226. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +19 -19
  227. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
  228. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +13 -2
  229. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +1 -1
  230. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts +5 -1
  231. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  232. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +33 -27
  233. package/dist/src/presentation/web/components/features/tools/tool-card.js +1 -1
  234. package/dist/src/presentation/web/components/features/version/version-page-client.js +1 -1
  235. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  236. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +3 -3
  237. package/dist/src/presentation/web/components/ui/sidebar.stories.js +1 -1
  238. package/dist/src/presentation/web/lib/session-scanner.js +2 -2
  239. package/dist/src/presentation/web/lib/version.d.ts +1 -1
  240. package/dist/src/presentation/web/lib/version.js +1 -1
  241. package/dist/src/presentation/web/{middleware.d.ts → proxy.d.ts} +4 -4
  242. package/dist/src/presentation/web/proxy.d.ts.map +1 -0
  243. package/dist/src/presentation/web/{middleware.js → proxy.js} +3 -3
  244. package/dist/src/presentation/web/types/theme.d.ts +1 -1
  245. package/dist/src/presentation/web/types/theme.js +1 -1
  246. package/dist/translations/ar/cli.json +17 -17
  247. package/dist/translations/ar/tui.json +2 -2
  248. package/dist/translations/ar/web.json +7 -5
  249. package/dist/translations/de/cli.json +17 -17
  250. package/dist/translations/de/tui.json +2 -2
  251. package/dist/translations/de/web.json +7 -5
  252. package/dist/translations/en/cli.json +17 -17
  253. package/dist/translations/en/tui.json +2 -2
  254. package/dist/translations/en/web.json +7 -5
  255. package/dist/translations/es/cli.json +17 -17
  256. package/dist/translations/es/tui.json +2 -2
  257. package/dist/translations/es/web.json +7 -5
  258. package/dist/translations/fr/cli.json +17 -17
  259. package/dist/translations/fr/tui.json +2 -2
  260. package/dist/translations/fr/web.json +7 -5
  261. package/dist/translations/he/cli.json +17 -17
  262. package/dist/translations/he/tui.json +2 -2
  263. package/dist/translations/he/web.json +7 -5
  264. package/dist/translations/pt/cli.json +17 -17
  265. package/dist/translations/pt/tui.json +2 -2
  266. package/dist/translations/pt/web.json +7 -5
  267. package/dist/translations/ru/cli.json +17 -17
  268. package/dist/translations/ru/tui.json +2 -2
  269. package/dist/translations/ru/web.json +7 -5
  270. package/dist/tsconfig.build.tsbuildinfo +1 -1
  271. package/package.json +3 -3
  272. package/web/.next/BUILD_ID +1 -1
  273. package/web/.next/build-manifest.json +5 -5
  274. package/web/.next/fallback-build-manifest.json +3 -3
  275. package/web/.next/prerender-manifest.json +3 -3
  276. package/web/.next/required-server-files.js +3 -3
  277. package/web/.next/required-server-files.json +3 -3
  278. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +2 -2
  279. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  280. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -1
  281. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  282. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  283. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +2 -2
  284. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  285. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +2 -1
  286. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  287. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
  289. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  290. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -1
  291. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  292. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  293. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  294. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  295. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -1
  296. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  297. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +2 -2
  299. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  300. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -1
  301. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  302. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  303. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +2 -2
  304. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  305. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +2 -1
  306. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  307. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  308. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +2 -2
  309. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  310. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -1
  311. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  312. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  313. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
  314. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  315. package/web/.next/server/app/(dashboard)/chat/page.js +2 -1
  316. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  317. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  318. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +2 -2
  319. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  320. package/web/.next/server/app/(dashboard)/create/page.js +2 -1
  321. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  322. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  323. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  324. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  325. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -1
  326. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  327. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  328. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +2 -2
  329. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  330. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -1
  331. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  332. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  333. package/web/.next/server/app/(dashboard)/page/build-manifest.json +2 -2
  334. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  335. package/web/.next/server/app/(dashboard)/page.js +2 -1
  336. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  337. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  338. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +2 -2
  339. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  340. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +2 -1
  341. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  342. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  343. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +2 -2
  344. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  345. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -1
  346. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  347. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  349. package/web/.next/server/app/_global-error.html +1 -1
  350. package/web/.next/server/app/_global-error.rsc +1 -1
  351. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  352. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  353. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  354. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  355. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  356. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  357. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  358. package/web/.next/server/app/_not-found/page.js +2 -1
  359. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  360. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  361. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  362. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  363. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  364. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  365. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  366. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  367. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  368. package/web/.next/server/app/settings/page/build-manifest.json +2 -2
  369. package/web/.next/server/app/settings/page/server-reference-manifest.json +42 -18
  370. package/web/.next/server/app/settings/page.js +3 -2
  371. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  372. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  373. package/web/.next/server/app/skills/page/build-manifest.json +2 -2
  374. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  375. package/web/.next/server/app/skills/page.js +2 -2
  376. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  377. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  378. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  379. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  380. package/web/.next/server/app/tools/page.js +2 -2
  381. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  382. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  383. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  384. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  385. package/web/.next/server/app/version/page.js +2 -1
  386. package/web/.next/server/app/version/page.js.nft.json +1 -1
  387. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  388. package/web/.next/server/chunks/[externals]__11vad82._.js +3 -0
  389. package/web/.next/server/chunks/[externals]__11vad82._.js.map +1 -0
  390. package/web/.next/server/chunks/[root-of-the-server]__0.2exzi._.js.map +1 -1
  391. package/web/.next/server/chunks/[root-of-the-server]__02xmnal._.js.map +1 -1
  392. package/web/.next/server/chunks/[root-of-the-server]__04jjtl_._.js.map +1 -1
  393. package/web/.next/server/chunks/[root-of-the-server]__07suer1._.js.map +1 -1
  394. package/web/.next/server/chunks/[root-of-the-server]__09118p2._.js.map +1 -1
  395. package/web/.next/server/chunks/[root-of-the-server]__0_.w-eb._.js.map +1 -1
  396. package/web/.next/server/chunks/[root-of-the-server]__0ip_e1x._.js.map +1 -1
  397. package/web/.next/server/chunks/{[root-of-the-server]__0ob3z53._.js → [root-of-the-server]__0l1p8bx._.js} +2 -2
  398. package/web/.next/server/chunks/{[root-of-the-server]__0ob3z53._.js.map → [root-of-the-server]__0l1p8bx._.js.map} +1 -1
  399. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  400. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js +20 -0
  401. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +3 -0
  403. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +1 -0
  404. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +3 -0
  405. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +1 -0
  406. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +3 -0
  407. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  409. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  411. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  413. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/11es_next_dist_0e36~wi._.js +1 -1
  415. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js +1 -1
  416. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js.map +1 -1
  417. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  418. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  419. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js +3 -0
  420. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js.map +1 -0
  421. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js +3 -0
  422. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qh.wn.._.js.map +1 -1
  424. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  425. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js +3 -0
  427. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js +3 -0
  429. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js.map +1 -0
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js +1 -1
  431. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js.map +1 -1
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js +4 -0
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js +3 -0
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/{_0sgeiju._.js → _01mq~sm._.js} +2 -2
  437. package/web/.next/server/chunks/ssr/{_0sgeiju._.js.map → _01mq~sm._.js.map} +1 -1
  438. package/web/.next/server/chunks/ssr/_0ck-4tu._.js +3 -0
  439. package/web/.next/server/chunks/ssr/{_13e1_1b._.js.map → _0ck-4tu._.js.map} +1 -1
  440. package/web/.next/server/chunks/ssr/_0e5cv3q._.js +1 -1
  441. package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/_0ez.1o4._.js +1 -1
  443. package/web/.next/server/chunks/ssr/_0ez.1o4._.js.map +1 -1
  444. package/web/.next/server/chunks/ssr/_0jpbsh_._.js +4 -0
  445. package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/_0n.xy38._.js +3 -0
  447. package/web/.next/server/chunks/ssr/_0n.xy38._.js.map +1 -0
  448. package/web/.next/server/chunks/ssr/{_05h68we._.js → _0qwfbti._.js} +2 -2
  449. package/web/.next/server/chunks/ssr/{_05h68we._.js.map → _0qwfbti._.js.map} +1 -1
  450. package/web/.next/server/chunks/ssr/_0rvaoj4._.js +3 -0
  451. package/web/.next/server/chunks/ssr/_0rvaoj4._.js.map +1 -0
  452. package/web/.next/server/chunks/ssr/_0v.yfmg._.js +1 -1
  453. package/web/.next/server/chunks/ssr/_0v.yfmg._.js.map +1 -1
  454. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  455. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  456. package/web/.next/server/chunks/ssr/_11kuznh._.js +1 -1
  457. package/web/.next/server/chunks/ssr/_11kuznh._.js.map +1 -1
  458. package/web/.next/server/chunks/ssr/{_0ts70ov._.js → _1251jyh._.js} +2 -2
  459. package/web/.next/server/chunks/ssr/{_0ts70ov._.js.map → _1251jyh._.js.map} +1 -1
  460. package/web/.next/server/chunks/ssr/_13euo-f._.js +1 -1
  461. package/web/.next/server/chunks/ssr/_13euo-f._.js.map +1 -1
  462. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +3 -0
  463. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +1 -0
  464. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +3 -0
  465. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +1 -0
  466. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +5 -0
  467. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +1 -0
  468. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +3 -0
  469. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +1 -0
  470. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +3 -0
  471. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +1 -0
  472. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +5 -0
  473. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +1 -0
  474. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +3 -0
  475. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +1 -0
  476. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +3 -0
  477. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +1 -0
  478. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +3 -0
  479. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +1 -0
  480. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +3 -0
  481. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +1 -0
  482. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +3 -0
  483. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +1 -0
  484. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +3 -0
  485. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map +1 -0
  486. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  487. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
  488. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js +1 -1
  489. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +1 -1
  490. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  491. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  492. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
  493. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
  494. package/web/.next/server/functions-config-manifest.json +11 -1
  495. package/web/.next/server/middleware/middleware-manifest.json +1 -27
  496. package/web/.next/server/middleware-build-manifest.js +5 -5
  497. package/web/.next/server/middleware-manifest.json +2 -32
  498. package/web/.next/server/middleware.js +5 -0
  499. package/web/.next/server/middleware.js.map +5 -0
  500. package/web/.next/server/middleware.js.nft.json +1 -0
  501. package/web/.next/server/pages/500.html +1 -1
  502. package/web/.next/server/server-reference-manifest.js +1 -1
  503. package/web/.next/server/server-reference-manifest.json +80 -56
  504. package/web/.next/static/chunks/021w~-m1dz332.js +1 -0
  505. package/web/.next/static/chunks/{01~tm1-qp0baa.js → 048ak2fupcqxa.js} +1 -1
  506. package/web/.next/static/chunks/{122mzkbtrj4-k.js → 05ma7tqgte2rp.js} +2 -2
  507. package/web/.next/static/chunks/07tgqua6s0jzi.js +1 -0
  508. package/web/.next/static/chunks/{0bdtgeoys8bq..js → 08iuksm8rvb09.js} +1 -1
  509. package/web/.next/static/chunks/0a0v6oq0y8qjf.js +1 -0
  510. package/web/.next/static/chunks/0ashjp4xvee.t.js +3 -0
  511. package/web/.next/static/chunks/{12pwrbjphv3z7.js → 0fca5-jv6y2tr.js} +1 -1
  512. package/web/.next/static/chunks/{0qz02~wj25f-f.js → 0gq630zq4bom1.js} +1 -1
  513. package/web/.next/static/chunks/{0_9hv9_f66hur.js → 0ol9d.q-22uu9.js} +1 -1
  514. package/web/.next/static/chunks/0r5dju6f1-i38.css +1 -0
  515. package/web/.next/static/chunks/{13xg0bjtuso~r.js → 0riti1bs-erm~.js} +1 -1
  516. package/web/.next/static/chunks/{0xs4~af3nc_15.js → 0t_0ao9.hyo5c.js} +2 -2
  517. package/web/.next/static/chunks/{0.2owry_sk_ak.js → 0v-p~icea44vo.js} +1 -1
  518. package/web/.next/static/chunks/{0vlx6s5d1~d-w.js → 0wmckrtphfa12.js} +1 -1
  519. package/web/.next/static/chunks/{07lrq10rx0tp1.js → 0~er~22zwvx0i.js} +1 -1
  520. package/web/.next/static/chunks/{0g-so1fagegtp.js → 13wut_4~i-~5e.js} +1 -1
  521. package/web/.next/static/chunks/{17jsatqy81xc..js → 14tk-xc-yijov.js} +3 -3
  522. package/web/.next/static/chunks/{0rnvcu2blaow4.js → 15m2wfd5k_7fj.js} +1 -1
  523. package/web/.next/static/chunks/{turbopack-10upsk2jydmq4.js → turbopack-0ve8f54_veg.u.js} +1 -1
  524. package/web/.next/static/{CJ4Fr1ggL4xWEe_fapYLv → eHSSUbH123C8dRCmILzEY}/_clientMiddlewareManifest.js +1 -1
  525. package/web/public/apple-touch-icon.png +0 -0
  526. package/web/public/favicon-32x32.png +0 -0
  527. package/web/public/icon-192.png +0 -0
  528. package/web/public/icon-512.png +0 -0
  529. package/web/public/icons/agents/openai.svg +1 -1
  530. package/web/public/shipit-brain.png +0 -0
  531. package/web/public/shipit-icon.svg +68 -0
  532. package/web/public/shipit-logo.png +0 -0
  533. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.d.ts.map +0 -1
  534. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.js +0 -5
  535. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.stories.d.ts.map +0 -1
  536. package/dist/src/presentation/web/middleware.d.ts.map +0 -1
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js +0 -4
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js.map +0 -1
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js +0 -3
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js.map +0 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__0frgz11._.js +0 -4
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__0frgz11._.js.map +0 -1
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js +0 -4
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js.map +0 -1
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pti1a3._.js +0 -4
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pti1a3._.js.map +0 -1
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js +0 -4
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js.map +0 -1
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js +0 -4
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js.map +0 -1
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__0yky~xo._.js +0 -4
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__0yky~xo._.js.map +0 -1
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__11dc42t._.js +0 -4
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__11dc42t._.js.map +0 -1
  555. package/web/.next/server/chunks/ssr/_0__4si~._.js +0 -4
  556. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +0 -1
  557. package/web/.next/server/chunks/ssr/_0_m17kl._.js +0 -4
  558. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +0 -1
  559. package/web/.next/server/chunks/ssr/_0d4miu.._.js +0 -4
  560. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +0 -1
  561. package/web/.next/server/chunks/ssr/_0e8ern9._.js +0 -4
  562. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +0 -1
  563. package/web/.next/server/chunks/ssr/_0hovej-._.js +0 -6
  564. package/web/.next/server/chunks/ssr/_0hovej-._.js.map +0 -1
  565. package/web/.next/server/chunks/ssr/_0p3zs6p._.js +0 -3
  566. package/web/.next/server/chunks/ssr/_0p3zs6p._.js.map +0 -1
  567. package/web/.next/server/chunks/ssr/_0qpq3xl._.js +0 -3
  568. package/web/.next/server/chunks/ssr/_0qpq3xl._.js.map +0 -1
  569. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +0 -4
  570. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +0 -1
  571. package/web/.next/server/chunks/ssr/_0t59q8r._.js +0 -4
  572. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +0 -1
  573. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +0 -4
  574. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +0 -1
  575. package/web/.next/server/chunks/ssr/_0~ev6dw._.js +0 -6
  576. package/web/.next/server/chunks/ssr/_0~ev6dw._.js.map +0 -1
  577. package/web/.next/server/chunks/ssr/_1161g9x._.js +0 -4
  578. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +0 -1
  579. package/web/.next/server/chunks/ssr/_13e1_1b._.js +0 -3
  580. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +0 -3
  581. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +0 -1
  582. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +0 -3
  583. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +0 -1
  584. package/web/.next/server/edge/chunks/0pax_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js +0 -3
  585. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js.map +0 -1
  586. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js +0 -3
  587. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js.map +0 -1
  588. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js +0 -11
  589. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js.map +0 -1
  590. package/web/.next/static/chunks/0dr6q94jmx86b.css +0 -1
  591. package/web/.next/static/chunks/0in40lx7y7f8o.js +0 -1
  592. package/web/.next/static/chunks/0rv6fo9ui94r9.js +0 -1
  593. package/web/.next/static/chunks/0t82zfhqgor5r.js +0 -1
  594. package/web/.next/static/chunks/0whetjaoa5y.l.js +0 -3
  595. package/web/public/favicon-dark.svg +0 -6
  596. package/web/public/favicon-light.svg +0 -6
  597. /package/web/.next/static/{CJ4Fr1ggL4xWEe_fapYLv → eHSSUbH123C8dRCmILzEY}/_buildManifest.js +0 -0
  598. /package/web/.next/static/{CJ4Fr1ggL4xWEe_fapYLv → eHSSUbH123C8dRCmILzEY}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(96871),r=e.i(16539),a=e.i(33109),s=e.i(60112),i=e.i(96976);let o=(0,i.createServerReference)("40334965bad865df464de0583e49535e5c2f29a6bf",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(98026);var n=e.i(50728);e.i(1650);var l=e.i(11495),c=e.i(45811),d=e.i(35364),p=e.i(41957),h=e.i(81846),u=e.i(2828),m=e.i(8361),x=e.i(30153);let f=(0,i.createServerReference)("409f0d96e27b61bc387e0d2573fb24b2ae2b64eec4",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var g=e.i(42076);let b=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),j={allowPrd:!1,allowPlan:!1,allowMerge:!1};var v=e.i(16868),w=e.i(53360),C=e.i(55016),y=e.i(31777),D=e.i(48306),N=e.i(51911);e.i(50032);var k=e.i(86254),P=e.i(9749);function T({description:e,onDescriptionChange:a,attachments:s,onRemoveFile:i,onNotesChange:o,onPaste:l,onDragEnter:c,onDragLeave:d,onDragOver:h,onDrop:m,onAddFiles:x,isDragOver:f,uploadError:g,isPromptFocused:b,onPromptFocus:j,onPromptBlur:S,fast:F,onFastChange:E,pending:R,onPendingChange:L,overrideAgent:A,overrideModel:M,currentAgentType:O,currentModel:I,onAgentModelChange:z,isSubmitting:U}){let{t:B}=(0,n.useTranslation)("web"),G=(0,r.useRef)(null);return(0,t.jsxs)("div",{role:"region","aria-label":B("createDrawer.fileDropZone"),"data-drag-over":f?"true":"false",onDragEnter:c,onDragLeave:d,onDragOver:h,onDrop:m,className:(0,y.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",f&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(p.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:B("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:G,onFocus:j,onBlur:()=>{setTimeout(()=>{let e=G.current?.contains(document.activeElement),t=G.current?.querySelector('[aria-expanded="true"]')!==null;e||t||S()},0)},className:(0,y.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",b&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(D.Textarea,{id:"feature-description",placeholder:B("createDrawer.featurePlaceholder"),value:e,onChange:e=>a(e.target.value),onPaste:l,required:!0,disabled:U,"aria-invalid":!!g,"aria-describedby":g?"feature-upload-error":void 0,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:s.map(e=>(0,t.jsx)(k.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>i(e.id),disabled:U,loading:e.loading,notes:e.notes,onNotesChange:t=>o(e.id,t)},e.id))}),g?(0,t.jsx)("p",{id:"feature-upload-error",className:"text-destructive px-3 pb-2 text-xs",role:"alert",children:g}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(P.AgentModelPicker,{initialAgentType:A??O??"claude-code",initialModel:M??I??"claude-sonnet-4-6",mode:"override",onAgentModelChange:z,disabled:U,className:"w-55"}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"pending-mode",checked:R,onCheckedChange:L,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(C.Clock,{className:"h-3.5 w-3.5"}),B("createDrawer.pendingMode")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"fast-mode",checked:F,onCheckedChange:E,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(w.Zap,{className:"h-3.5 w-3.5"}),B("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:x,disabled:U,"aria-label":B("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(v.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("chat.attachFiles")})]})]})]})]})}var S=e.i(81542),F=e.i(70471),E=e.i(43416);let R=["allowPrd","allowPlan","allowMerge"];function L({approvalGates:e,onApprovalGatesChange:r,enableEvidence:a,onEnableEvidenceChange:s,commitEvidence:i,onCommitEvidenceChange:o,push:l,onPushChange:c,openPr:d,onOpenPrChange:h,ciWatchEnabled:m,onCiWatchChange:x,rebaseBeforeBranch:f,onRebaseBeforeBranchChange:g,commitSpecs:b,onCommitSpecsChange:j,forkAndPr:v,onForkAndPrChange:w,canPush:C,fast:D,computedPush:k,computedOpenPr:P,isSubmitting:T}){let{t:A}=(0,n.useTranslation)("web"),M=[{id:"allowPrd",label:A("createDrawer.prd"),description:A("createDrawer.prdDescription")},{id:"allowPlan",label:A("createDrawer.plan"),description:A("createDrawer.planDescription")},{id:"allowMerge",label:A("createDrawer.merge"),description:A("createDrawer.mergeDescription")}];return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:A("createDrawer.approve")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:M.map(a=>(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:`approve-${a.id}`,size:"sm",checked:e[a.id]??!1,onCheckedChange:t=>r({...e,[a.id]:t}),disabled:T||D&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,t.jsx)(p.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:D&&("allowPrd"===a.id||"allowPlan"===a.id)?A("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=R.every(t=>e[t]),a={};for(let e of R)a[e]=!t;r(a)},disabled:T,className:(0,y.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",R.every(t=>e[t])&&"text-primary"),children:A("createDrawer.all")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:A("createDrawer.evidence")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"enable-evidence",size:"sm",checked:a,onCheckedChange:e=>{s(e),e||o(!1)},disabled:T}),(0,t.jsx)(p.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:A("createDrawer.collect")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.collectDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-evidence",size:"sm",checked:i,onCheckedChange:o,disabled:T||!a||!d&&!v}),(0,t.jsx)(p.Label,{htmlFor:"commit-evidence",className:(0,y.cn)("cursor-pointer text-xs font-medium",(!a||!d&&!v)&&"opacity-50"),children:A("createDrawer.addToPr")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:d||v?a?A("createDrawer.addToPrDescription"):A("createDrawer.requiresEvidence"):A("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:A("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"push",size:"sm",checked:k,onCheckedChange:e=>{c(e),!e&&d&&h(!1)},disabled:T||v}),(0,t.jsx)(p.Label,{htmlFor:"push",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:A("createDrawer.push")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":A("createDrawer.pushDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"open-pr",size:"sm",checked:P,onCheckedChange:e=>{h(e),e||o(!1)},disabled:T||v}),(0,t.jsx)(p.Label,{htmlFor:"open-pr",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:A("createDrawer.pr")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":A("createDrawer.prDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"ci-watch",size:"sm",checked:m,onCheckedChange:x,disabled:T}),(0,t.jsx)(p.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:A("createDrawer.watch")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"rebase-before-branch",size:"sm",checked:f,onCheckedChange:g,disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(E.RefreshCw,{className:"h-3 w-3"}),A("createDrawer.sync")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.syncDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-specs",size:"sm",checked:b,onCheckedChange:j,disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(F.FileText,{className:"h-3 w-3"}),A("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.commitSpecsDescription")})]}),!C&&(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"fork-and-pr",size:"sm",checked:v,onCheckedChange:e=>{w(e),e&&j(!1)},disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(S.GitFork,{className:"h-3 w-3"}),A("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.forkAndPrDescription")})]})]})]})]})}var A=e.i(83843),M=e.i(97667),O=e.i(98127),I=e.i(90382);function z({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,c]=(0,r.useState)(!1),[d,p]=(0,r.useState)(""),h=(0,r.useRef)(null),u=e.find(e=>e.id===a),m=d.trim()?e.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())||e.id.toLowerCase().includes(d.toLowerCase())):e,x=(0,r.useCallback)(e=>{s(e),c(!1),p("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>h.current?.focus(),0):p("")},[l]),(0,t.jsxs)(I.Popover,{open:l,onOpenChange:c,children:[(0,t.jsx)(I.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(A.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(I.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(O.Input,{ref:h,placeholder:o("createDrawer.searchFeatures"),value:d,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>x(void 0),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===m.length&&d?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):m.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>x(e.id),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}var U=e.i(91925),B=e.i(83428),G=e.i(25235),W=e.i(75921),$=e.i(34629),q=e.i(78521);e.i(13322);var K=e.i(61201);function Z({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,c]=(0,r.useState)(!1),[d,p]=(0,r.useState)(""),[h,u]=(0,r.useState)(!1),[m,x]=(0,r.useState)(null),[f,g]=(0,r.useState)(!1),b=(0,r.useRef)(null),{reactFileManager:j}=(0,W.useFeatureFlags)(),{t:v}=(0,n.useTranslation)("web"),w=e.find(e=>e.path===a),C=d.trim()?e.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())||e.path.toLowerCase().includes(d.toLowerCase())):e,D=(0,r.useCallback)(e=>{s(e),c(!1),p("")},[s]),N=(0,r.useCallback)(async e=>{let t=await (0,$.addRepository)({path:e});if(t.error){x(t.error),u(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),c(!1),p("")}},[i,s]),k=(0,r.useCallback)(async()=>{if(!h){if(j)return void g(!0);u(!0),x(null);try{let e=await (0,q.pickFolder)();if(!e)return void u(!1);await N(e)}catch{g(!0)}finally{u(!1)}}},[h,j,N]),P=(0,r.useCallback)(async e=>{if(g(!1),e){u(!0),x(null);try{await N(e)}catch(e){x(e instanceof Error?e.message:"Failed to add repository")}finally{u(!1)}}},[N]);return(0,r.useEffect)(()=>{l?setTimeout(()=>b.current?.focus(),0):p("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(I.Popover,{open:l,onOpenChange:c,children:[(0,t.jsx)(I.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository","aria-invalid":!!m,"aria-describedby":m?"add-repository-error-msg":void 0,disabled:o,"data-testid":"repository-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,t.jsx)(A.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(I.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(O.Input,{ref:b,placeholder:v("createDrawer.searchRepositories"),value:d,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===C.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):C.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>D(e.path),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(G.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:k,disabled:h,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[h?(0,t.jsx)(B.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(U.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),m?(0,t.jsx)("p",{id:"add-repository-error-msg",className:"px-3 pb-2 text-xs text-red-500",role:"alert","data-testid":"add-repository-error",children:m}):null]})})]}),(0,t.jsx)(K.ReactFileManagerDialog,{open:f,onOpenChange:e=>{e||g(!1)},onSelect:P})]})}function J({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:v,features:w,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:k,canPushDirectly:P}){let{t:S}=(0,n.useTranslation)("web"),F=function({open:e,onClose:t,onSubmit:a,repositoryPath:s,workflowDefaults:i,repositories:o,initialParentId:n,currentAgentType:l,currentModel:c,initialDescription:d,canPushDirectly:p}){let h=(0,m.useSoundAction)("create"),u=s&&(!o||0===o.length||o.some(e=>e.path===s))?s:"",v=i?.approvalGates??j,w=i?.push??!1,C=i?.openPr??!1,y=i?.ciWatchEnabled!==!1,D=i?.enableEvidence??!1,N=i?.commitEvidence??!1,k=i?.fast!==!1,[P,T]=(0,r.useState)(d??"");(0,r.useEffect)(()=>{d&&T(d)},[d]);let[S,F]=(0,r.useState)([]),[E,R]=(0,r.useState)({...v}),[L,A]=(0,r.useState)(w),[M,O]=(0,r.useState)(C),[I,z]=(0,r.useState)(i?.ciWatchEnabled!==!1),[U,B]=(0,r.useState)(D),[G,W]=(0,r.useState)(N),[$,q]=(0,r.useState)(void 0),[K,Z]=(0,r.useState)(k),[J,V]=(0,r.useState)(!1),[H,Q]=(0,r.useState)(!1),[X,Y]=(0,r.useState)(!0),[_,ee]=(0,r.useState)(!0),[et,er]=(0,r.useState)(void 0),[ea,es]=(0,r.useState)(void 0),[ei,eo]=(0,r.useState)(u||void 0),[en,el]=(0,r.useState)(o??[]),[ec,ed]=(0,r.useState)(!1),[ep,eh]=(0,r.useState)(null),[eu,em]=(0,r.useState)(!1),ex=(0,r.useRef)(crypto.randomUUID()),ef=(0,r.useRef)(0);(0,r.useEffect)(()=>{i&&(R({...i.approvalGates}),A(i.push),O(i.openPr),z(!1!==i.ciWatchEnabled),B(i.enableEvidence),W(i.commitEvidence),Z(!1!==i.fast))},[i]),(0,r.useEffect)(()=>{el(o??[])},[o]),(0,r.useEffect)(()=>{e&&n&&q(n)},[e,n]);let[eg,eb]=(0,r.useState)(p??!1);(0,r.useEffect)(()=>{eb(p??!1)},[p]);let ej=(0,r.useRef)(ei);(0,r.useEffect)(()=>{ei&&ei!==ej.current&&(ej.current=ei,f(ei).then(e=>eb(e.canPushDirectly)).catch(()=>eb(!1)))},[ei]),(0,r.useEffect)(()=>{eg&&(Q(!1),A(w),O(C),Y(!0))},[eg,w,C]);let ev=(0,r.useCallback)(()=>{T(""),F([]),R({...v}),A(w),O(C),z(y),B(D),W(N),q(void 0),eo(u||void 0),el(o??[]),Z(k),V(!1),Q(!1),Y(!0),ee(!0),er(void 0),es(void 0),eh(null),ef.current=0,ed(!1)},[v,w,C,D,y,N,k,u,o]),ew=""!==P.trim()||S.length>0,{attemptClose:eC}=(0,x.useGuardedDrawerClose)({open:e,isDirty:ew,onClose:t,onReset:ev}),ey=(0,r.useCallback)(async e=>{for(let t of(eh(null),e)){if(t.size>0xa00000)return void eh(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!b.has(e))return void eh(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",ex.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),eh(t.error??"Upload failed");return}let s=await a.json();F(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),eh("Upload failed")}}},[]),eD=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current+=1,1===ef.current&&ed(!0)},[]),eN=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current-=1,0===ef.current&&ed(!1)},[]),ek=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eP=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current=0,ed(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&ey(t)},[ey]),eT=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),ey(r))},[ey]),eS=(0,r.useCallback)(e=>{if(e.preventDefault(),!P.trim())return;let t=ei??u;t&&(h.play(),a({description:P.trim(),attachments:S.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:!!H||L||M,openPr:!!H||M,ciWatchEnabled:I,enableEvidence:U,commitEvidence:G,fast:K,forkAndPr:H,commitSpecs:X,rebaseBeforeBranch:_,...J?{pending:J}:{},...et?{agentType:et}:{},...ea?{model:ea}:{},...$?{parentId:$}:{},sessionId:ex.current}),ev())},[P,S,E,ei,u,a,L,M,U,I,G,K,H,X,_,J,et,ea,$,h,ev]),eF=(0,r.useCallback)(async()=>{try{let e=await (0,g.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:ex.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),eh(t.error??"Upload failed");return}let a=await r.json();F(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),eh("Upload failed")}}}catch{}},[]),eE=(0,r.useCallback)(e=>{F(t=>t.filter(t=>t.id!==e))},[]),eR=(0,r.useCallback)((e,t)=>{F(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]);return{validRepoPath:u,canPush:eg,isDirty:ew,computedPush:!!H||L||M,computedOpenPr:!!H||M,description:P,setDescription:T,attachments:S,approvalGates:E,setApprovalGates:R,push:L,setPush:A,openPr:M,setOpenPr:O,ciWatchEnabled:I,setCiWatchEnabled:z,enableEvidence:U,setEnableEvidence:B,commitEvidence:G,setCommitEvidence:W,parentId:$,setParentId:q,fast:K,setFast:Z,pending:J,setPending:V,forkAndPr:H,setForkAndPr:Q,commitSpecs:X,setCommitSpecs:Y,rebaseBeforeBranch:_,setRebaseBeforeBranch:ee,overrideAgent:et,setOverrideAgent:er,overrideModel:ea,setOverrideModel:es,selectedRepoPath:ei,setSelectedRepoPath:eo,localRepos:en,setLocalRepos:el,isDragOver:ec,uploadError:ep,isPromptFocused:eu,setIsPromptFocused:em,sessionIdRef:ex,currentAgentType:l,currentModel:c,attemptClose:eC,handleFiles:ey,handleDragEnter:eD,handleDragLeave:eN,handleDragOver:ek,handleDrop:eP,handlePaste:eT,handleSubmit:eS,handleAddFiles:eF,handleRemoveFile:eE,handleNotesChange:eR,resetForm:ev}}({open:e,onClose:a,onSubmit:s,repositoryPath:i,workflowDefaults:v,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:k,canPushDirectly:P}),E=(0,r.useRef)(null),R=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),E.current?.requestSubmit())},[]),A=w&&w.length>0,M=!F.validRepoPath&&void 0!==C,O=!F.validRepoPath&&!F.selectedRepoPath;return(0,t.jsx)(l.BaseDrawer,{open:e,onClose:F.attemptClose,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(c.DrawerTitle,{children:S("createDrawer.title")})]}),o?(0,t.jsx)(c.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(h.Badge,{variant:"secondary",children:S("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"outline",onClick:F.attemptClose,disabled:o,children:S("createDrawer.cancel")}),(0,t.jsx)(d.Button,{type:"submit",form:"create-feature-form",disabled:!F.description.trim()||o||O,children:S(o?"createDrawer.creating":"createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(u.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:E,id:"create-feature-form",onSubmit:F.handleSubmit,onKeyDown:R,className:"flex flex-col gap-4",children:[M?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)(Z,{repositories:F.localRepos,value:F.selectedRepoPath,onChange:F.setSelectedRepoPath,onAddRepository:e=>{F.setLocalRepos(t=>[...t,e]),F.setSelectedRepoPath(e.path)},disabled:o})]}):F.validRepoPath?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:C?.find(e=>e.path===F.validRepoPath)?.name??F.validRepoPath.split("/").pop()})]}):null,(0,t.jsx)(T,{description:F.description,onDescriptionChange:F.setDescription,attachments:F.attachments,onRemoveFile:F.handleRemoveFile,onNotesChange:F.handleNotesChange,onPaste:F.handlePaste,onDragEnter:F.handleDragEnter,onDragLeave:F.handleDragLeave,onDragOver:F.handleDragOver,onDrop:F.handleDrop,onAddFiles:F.handleAddFiles,isDragOver:F.isDragOver,uploadError:F.uploadError,isPromptFocused:F.isPromptFocused,onPromptFocus:()=>F.setIsPromptFocused(!0),onPromptBlur:()=>F.setIsPromptFocused(!1),fast:F.fast,onFastChange:F.setFast,pending:F.pending,onPendingChange:F.setPending,overrideAgent:F.overrideAgent,overrideModel:F.overrideModel,currentAgentType:D,currentModel:N,onAgentModelChange:(e,t)=>{F.setOverrideAgent(e),F.setOverrideModel(t)},isSubmitting:o}),A&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(p.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.parentFeature")}),(0,t.jsx)(z,{features:w,value:F.parentId,onChange:F.setParentId,disabled:o})]}):null,(0,t.jsx)(L,{approvalGates:F.approvalGates,onApprovalGatesChange:F.setApprovalGates,enableEvidence:F.enableEvidence,onEnableEvidenceChange:F.setEnableEvidence,commitEvidence:F.commitEvidence,onCommitEvidenceChange:F.setCommitEvidence,push:F.push,onPushChange:F.setPush,openPr:F.openPr,onOpenPrChange:F.setOpenPr,ciWatchEnabled:F.ciWatchEnabled,onCiWatchChange:F.setCiWatchEnabled,rebaseBeforeBranch:F.rebaseBeforeBranch,onRebaseBeforeBranchChange:F.setRebaseBeforeBranch,commitSpecs:F.commitSpecs,onCommitSpecsChange:F.setCommitSpecs,forkAndPr:F.forkAndPr,onForkAndPrChange:F.setForkAndPr,canPush:F.canPush,fast:F.fast,computedPush:F.computedPush,computedOpenPr:F.computedOpenPr,isSubmitting:o})]})})})})}e.s(["CreateDrawerClient",0,function({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:h,canPushDirectly:u}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),g=(0,a.usePathname)().startsWith("/create"),b=!x&&g;(0,r.useEffect)(()=>{!g&&x&&f(!1)},[g,x]);let j=(0,r.useCallback)(()=>{m.push("/")},[m]),v=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shipit-ai:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(J,{open:b,onClose:j,onSubmit:v,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:h,canPushDirectly:u})}],15203)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(96871),r=e.i(16539),a=e.i(33109),s=e.i(60112),i=e.i(96976);let o=(0,i.createServerReference)("401ff1026b89897e7d92eb29cc8c95bd092af688da",i.callServer,void 0,i.findSourceMapURL,"createFeature");e.i(98026);var n=e.i(50728);e.i(1650);var l=e.i(11495),c=e.i(45811),d=e.i(35364),p=e.i(41957),h=e.i(81846),u=e.i(2828),m=e.i(8361),x=e.i(30153);let f=(0,i.createServerReference)("409e6a107e5d196e2483b89e30d5e4d5558789ed36",i.callServer,void 0,i.findSourceMapURL,"getViewerPermission");var g=e.i(42076);let b=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),j={allowPrd:!1,allowPlan:!1,allowMerge:!1};var v=e.i(16868),w=e.i(53360),C=e.i(55016),y=e.i(31777),D=e.i(48306),N=e.i(51911);e.i(50032);var k=e.i(86254),P=e.i(9749);function T({description:e,onDescriptionChange:a,attachments:s,onRemoveFile:i,onNotesChange:o,onPaste:l,onDragEnter:c,onDragLeave:d,onDragOver:h,onDrop:m,onAddFiles:x,isDragOver:f,uploadError:g,isPromptFocused:b,onPromptFocus:j,onPromptBlur:S,fast:F,onFastChange:E,pending:R,onPendingChange:L,overrideAgent:A,overrideModel:M,currentAgentType:O,currentModel:I,onAgentModelChange:z,isSubmitting:U}){let{t:B}=(0,n.useTranslation)("web"),G=(0,r.useRef)(null);return(0,t.jsxs)("div",{role:"region","aria-label":B("createDrawer.fileDropZone"),"data-drag-over":f?"true":"false",onDragEnter:c,onDragLeave:d,onDragOver:h,onDrop:m,className:(0,y.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",f&&"border-primary/50 bg-primary/5"),children:[(0,t.jsx)(p.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:B("createDrawer.describeFeature")}),(0,t.jsxs)("div",{ref:G,onFocus:j,onBlur:()=>{setTimeout(()=>{let e=G.current?.contains(document.activeElement),t=G.current?.querySelector('[aria-expanded="true"]')!==null;e||t||S()},0)},className:(0,y.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",b&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,t.jsx)(D.Textarea,{id:"feature-description",placeholder:B("createDrawer.featurePlaceholder"),value:e,onChange:e=>a(e.target.value),onPaste:l,required:!0,disabled:U,"aria-invalid":!!g,"aria-describedby":g?"feature-upload-error":void 0,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:s.map(e=>(0,t.jsx)(k.AttachmentChip,{name:e.name,size:e.size,mimeType:e.mimeType,path:e.path,onRemove:()=>i(e.id),disabled:U,loading:e.loading,notes:e.notes,onNotesChange:t=>o(e.id,t)},e.id))}),g?(0,t.jsx)("p",{id:"feature-upload-error",className:"text-destructive px-3 pb-2 text-xs",role:"alert",children:g}):null,(0,t.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,t.jsx)(P.AgentModelPicker,{initialAgentType:A??O??"claude-code",initialModel:M??I??"claude-sonnet-4-6",mode:"override",onAgentModelChange:z,disabled:U,className:"w-55"}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"pending-mode",checked:R,onCheckedChange:L,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(C.Clock,{className:"h-3.5 w-3.5"}),B("createDrawer.pendingMode")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("createDrawer.pendingModeDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,t.jsx)(N.Switch,{id:"fast-mode",checked:F,onCheckedChange:E,disabled:U}),(0,t.jsxs)(p.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,t.jsx)(w.Zap,{className:"h-3.5 w-3.5"}),B("createDrawer.fastModeLabel")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("createDrawer.fastModeDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:x,disabled:U,"aria-label":B("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,t.jsx)(v.PaperclipIcon,{className:"h-4 w-4"})})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:B("chat.attachFiles")})]})]})]})]})}var S=e.i(81542),F=e.i(70471),E=e.i(43416);let R=["allowPrd","allowPlan","allowMerge"];function L({approvalGates:e,onApprovalGatesChange:r,enableEvidence:a,onEnableEvidenceChange:s,commitEvidence:i,onCommitEvidenceChange:o,push:l,onPushChange:c,openPr:d,onOpenPrChange:h,ciWatchEnabled:m,onCiWatchChange:x,rebaseBeforeBranch:f,onRebaseBeforeBranchChange:g,commitSpecs:b,onCommitSpecsChange:j,forkAndPr:v,onForkAndPrChange:w,canPush:C,fast:D,computedPush:k,computedOpenPr:P,isSubmitting:T}){let{t:A}=(0,n.useTranslation)("web"),M=[{id:"allowPrd",label:A("createDrawer.prd"),description:A("createDrawer.prdDescription")},{id:"allowPlan",label:A("createDrawer.plan"),description:A("createDrawer.planDescription")},{id:"allowMerge",label:A("createDrawer.merge"),description:A("createDrawer.mergeDescription")}];return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:A("createDrawer.approve")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.approveDescription")})]}),(0,t.jsx)("div",{className:"flex flex-1 items-center gap-4",children:M.map(a=>(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:`approve-${a.id}`,size:"sm",checked:e[a.id]??!1,onCheckedChange:t=>r({...e,[a.id]:t}),disabled:T||D&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,t.jsx)(p.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:D&&("allowPrd"===a.id||"allowPlan"===a.id)?A("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:()=>{let t=R.every(t=>e[t]),a={};for(let e of R)a[e]=!t;r(a)},disabled:T,className:(0,y.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",R.every(t=>e[t])&&"text-primary"),children:A("createDrawer.all")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.toggleAllApprovalGates")})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:A("createDrawer.evidence")})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.evidenceDescription")})]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"enable-evidence",size:"sm",checked:a,onCheckedChange:e=>{s(e),e||o(!1)},disabled:T}),(0,t.jsx)(p.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:A("createDrawer.collect")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.collectDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-evidence",size:"sm",checked:i,onCheckedChange:o,disabled:T||!a||!d&&!v}),(0,t.jsx)(p.Label,{htmlFor:"commit-evidence",className:(0,y.cn)("cursor-pointer text-xs font-medium",(!a||!d&&!v)&&"opacity-50"),children:A("createDrawer.addToPr")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:d||v?a?A("createDrawer.addToPrDescription"):A("createDrawer.requiresEvidence"):A("createDrawer.requiresPr")})]})]})]}),(0,t.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,t.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:A("createDrawer.git")}),(0,t.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"push",size:"sm",checked:k,onCheckedChange:e=>{c(e),!e&&d&&h(!1)},disabled:T||v}),(0,t.jsx)(p.Label,{htmlFor:"push",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:A("createDrawer.push")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":A("createDrawer.pushDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"open-pr",size:"sm",checked:P,onCheckedChange:e=>{h(e),e||o(!1)},disabled:T||v}),(0,t.jsx)(p.Label,{htmlFor:"open-pr",className:(0,y.cn)("cursor-pointer text-xs font-medium",v&&"opacity-50"),children:A("createDrawer.pr")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:v?"Enabled — contributing to upstream":A("createDrawer.prDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"ci-watch",size:"sm",checked:m,onCheckedChange:x,disabled:T}),(0,t.jsx)(p.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:A("createDrawer.watch")})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.watchDescription")})]}),(0,t.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"rebase-before-branch",size:"sm",checked:f,onCheckedChange:g,disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(E.RefreshCw,{className:"h-3 w-3"}),A("createDrawer.sync")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.syncDescription")})]}),(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"commit-specs",size:"sm",checked:b,onCheckedChange:j,disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(F.FileText,{className:"h-3 w-3"}),A("createDrawer.commitSpecs")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.commitSpecsDescription")})]}),!C&&(0,t.jsxs)(u.Tooltip,{children:[(0,t.jsx)(u.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,t.jsx)(N.Switch,{id:"fork-and-pr",size:"sm",checked:v,onCheckedChange:e=>{w(e),e&&j(!1)},disabled:T}),(0,t.jsxs)(p.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,t.jsx)(S.GitFork,{className:"h-3 w-3"}),A("createDrawer.forkAndPr")]})]})}),(0,t.jsx)(u.TooltipContent,{side:"bottom",children:A("createDrawer.forkAndPrDescription")})]})]})]})]})}var A=e.i(83843),M=e.i(97667),O=e.i(98127),I=e.i(90382);function z({features:e,value:a,onChange:s,disabled:i}){let{t:o}=(0,n.useTranslation)("web"),[l,c]=(0,r.useState)(!1),[d,p]=(0,r.useState)(""),h=(0,r.useRef)(null),u=e.find(e=>e.id===a),m=d.trim()?e.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())||e.id.toLowerCase().includes(d.toLowerCase())):e,x=(0,r.useCallback)(e=>{s(e),c(!1),p("")},[s]);return(0,r.useEffect)(()=>{l?setTimeout(()=>h.current?.focus(),0):p("")},[l]),(0,t.jsxs)(I.Popover,{open:l,onOpenChange:c,children:[(0,t.jsx)(I.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":l,"aria-label":"Parent Feature",disabled:i,"data-testid":"parent-feature-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:o("createDrawer.selectParent")}),(0,t.jsx)(A.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(I.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(O.Input,{ref:h,placeholder:o("createDrawer.searchFeatures"),value:d,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>x(void 0),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o("createDrawer.noParent")})]}),0===m.length&&d?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:o("createDrawer.noFeaturesFound")}):m.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>x(e.id),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}var U=e.i(91925),B=e.i(83428),G=e.i(25235),W=e.i(75921),$=e.i(31910),q=e.i(78521);e.i(13322);var K=e.i(61201);function Z({repositories:e,value:a,onChange:s,onAddRepository:i,disabled:o}){let[l,c]=(0,r.useState)(!1),[d,p]=(0,r.useState)(""),[h,u]=(0,r.useState)(!1),[m,x]=(0,r.useState)(null),[f,g]=(0,r.useState)(!1),b=(0,r.useRef)(null),{reactFileManager:j}=(0,W.useFeatureFlags)(),{t:v}=(0,n.useTranslation)("web"),w=e.find(e=>e.path===a),C=d.trim()?e.filter(e=>e.name.toLowerCase().includes(d.toLowerCase())||e.path.toLowerCase().includes(d.toLowerCase())):e,D=(0,r.useCallback)(e=>{s(e),c(!1),p("")},[s]),N=(0,r.useCallback)(async e=>{let t=await (0,$.addRepository)({path:e});if(t.error){x(t.error),u(!1);return}if(t.repository){let e={id:t.repository.id,name:t.repository.name,path:t.repository.path};i?.(e),s(e.path),c(!1),p("")}},[i,s]),k=(0,r.useCallback)(async()=>{if(!h){if(j)return void g(!0);u(!0),x(null);try{let e=await (0,q.pickFolder)();if(!e)return void u(!1);await N(e)}catch{g(!0)}finally{u(!1)}}},[h,j,N]),P=(0,r.useCallback)(async e=>{if(g(!1),e){u(!0),x(null);try{await N(e)}catch(e){x(e instanceof Error?e.message:"Failed to add repository")}finally{u(!1)}}},[N]);return(0,r.useEffect)(()=>{l?setTimeout(()=>b.current?.focus(),0):p("")},[l]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(I.Popover,{open:l,onOpenChange:c,children:[(0,t.jsx)(I.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",role:"combobox","aria-expanded":l,"aria-label":"Repository","aria-invalid":!!m,"aria-describedby":m?"add-repository-error-msg":void 0,disabled:o,"data-testid":"repository-combobox",className:(0,y.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!w&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:w?w.name:"Select repository..."}),(0,t.jsx)(A.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(I.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(O.Input,{ref:b,placeholder:v("createDrawer.searchRepositories"),value:d,onChange:e=>p(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,t.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===C.length?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):C.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.path,onClick:()=>D(e.path),className:(0,y.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.path&&"bg-accent/50"),"data-testid":`repository-option-${e.id}`,children:[(0,t.jsx)(M.CheckIcon,{className:(0,y.cn)("h-4 w-4 shrink-0",a!==e.path&&"invisible")}),(0,t.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,t.jsx)("span",{className:"truncate",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))}),(0,t.jsx)(G.Separator,{}),(0,t.jsxs)("button",{type:"button",onClick:k,disabled:h,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[h?(0,t.jsx)(B.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,t.jsx)(U.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:"Add new repository..."})]}),m?(0,t.jsx)("p",{id:"add-repository-error-msg",className:"px-3 pb-2 text-xs text-red-500",role:"alert","data-testid":"add-repository-error",children:m}):null]})})]}),(0,t.jsx)(K.ReactFileManagerDialog,{open:f,onOpenChange:e=>{e||g(!1)},onSelect:P})]})}function J({open:e,onClose:a,onSubmit:s,repositoryPath:i,isSubmitting:o=!1,workflowDefaults:v,features:w,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:k,canPushDirectly:P}){let{t:S}=(0,n.useTranslation)("web"),F=function({open:e,onClose:t,onSubmit:a,repositoryPath:s,workflowDefaults:i,repositories:o,initialParentId:n,currentAgentType:l,currentModel:c,initialDescription:d,canPushDirectly:p}){let h=(0,m.useSoundAction)("create"),u=s&&(!o||0===o.length||o.some(e=>e.path===s))?s:"",v=i?.approvalGates??j,w=i?.push??!1,C=i?.openPr??!1,y=i?.ciWatchEnabled!==!1,D=i?.enableEvidence??!1,N=i?.commitEvidence??!1,k=i?.fast!==!1,[P,T]=(0,r.useState)(d??"");(0,r.useEffect)(()=>{d&&T(d)},[d]);let[S,F]=(0,r.useState)([]),[E,R]=(0,r.useState)({...v}),[L,A]=(0,r.useState)(w),[M,O]=(0,r.useState)(C),[I,z]=(0,r.useState)(i?.ciWatchEnabled!==!1),[U,B]=(0,r.useState)(D),[G,W]=(0,r.useState)(N),[$,q]=(0,r.useState)(void 0),[K,Z]=(0,r.useState)(k),[J,V]=(0,r.useState)(!1),[H,Q]=(0,r.useState)(!1),[X,Y]=(0,r.useState)(!0),[_,ee]=(0,r.useState)(!0),[et,er]=(0,r.useState)(void 0),[ea,es]=(0,r.useState)(void 0),[ei,eo]=(0,r.useState)(u||void 0),[en,el]=(0,r.useState)(o??[]),[ec,ed]=(0,r.useState)(!1),[ep,eh]=(0,r.useState)(null),[eu,em]=(0,r.useState)(!1),ex=(0,r.useRef)(crypto.randomUUID()),ef=(0,r.useRef)(0);(0,r.useEffect)(()=>{i&&(R({...i.approvalGates}),A(i.push),O(i.openPr),z(!1!==i.ciWatchEnabled),B(i.enableEvidence),W(i.commitEvidence),Z(!1!==i.fast))},[i]),(0,r.useEffect)(()=>{el(o??[])},[o]),(0,r.useEffect)(()=>{e&&n&&q(n)},[e,n]);let[eg,eb]=(0,r.useState)(p??!1);(0,r.useEffect)(()=>{eb(p??!1)},[p]);let ej=(0,r.useRef)(ei);(0,r.useEffect)(()=>{ei&&ei!==ej.current&&(ej.current=ei,f(ei).then(e=>eb(e.canPushDirectly)).catch(()=>eb(!1)))},[ei]),(0,r.useEffect)(()=>{eg&&(Q(!1),A(w),O(C),Y(!0))},[eg,w,C]);let ev=(0,r.useCallback)(()=>{T(""),F([]),R({...v}),A(w),O(C),z(y),B(D),W(N),q(void 0),eo(u||void 0),el(o??[]),Z(k),V(!1),Q(!1),Y(!0),ee(!0),er(void 0),es(void 0),eh(null),ef.current=0,ed(!1)},[v,w,C,D,y,N,k,u,o]),ew=""!==P.trim()||S.length>0,{attemptClose:eC}=(0,x.useGuardedDrawerClose)({open:e,isDirty:ew,onClose:t,onReset:ev}),ey=(0,r.useCallback)(async e=>{for(let t of(eh(null),e)){if(t.size>0xa00000)return void eh(`"${t.name}" exceeds 10 MB limit`);let e=function(e){let t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}(t.name);if(e&&!b.has(e))return void eh(`File type "${e}" is not allowed`)}for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:t.type||"application/octet-stream",path:"",loading:!0}]);try{let r=new FormData;r.append("file",t),r.append("sessionId",ex.current);let a=await fetch("/api/attachments/upload",{method:"POST",body:r});if(!a.ok){let t=await a.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),eh(t.error??"Upload failed");return}let s=await a.json();F(t=>t.some(t=>t.id!==e&&t.path===s.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...s,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),eh("Upload failed")}}},[]),eD=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current+=1,1===ef.current&&ed(!0)},[]),eN=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current-=1,0===ef.current&&ed(!1)},[]),ek=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),eP=(0,r.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),ef.current=0,ed(!1);let t=Array.from(e.dataTransfer.files);t.length>0&&ey(t)},[ey]),eT=(0,r.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let r=[];for(let e of Array.from(t))if("file"===e.kind){let t=e.getAsFile();t&&r.push(t)}r.length>0&&(e.preventDefault(),ey(r))},[ey]),eS=(0,r.useCallback)(e=>{if(e.preventDefault(),!P.trim())return;let t=ei??u;t&&(h.play(),a({description:P.trim(),attachments:S.filter(e=>!e.loading),repositoryPath:t,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:!!H||L||M,openPr:!!H||M,ciWatchEnabled:I,enableEvidence:U,commitEvidence:G,fast:K,forkAndPr:H,commitSpecs:X,rebaseBeforeBranch:_,...J?{pending:J}:{},...et?{agentType:et}:{},...ea?{model:ea}:{},...$?{parentId:$}:{},sessionId:ex.current}),ev())},[P,S,E,ei,u,a,L,M,U,I,G,K,H,X,_,J,et,ea,$,h,ev]),eF=(0,r.useCallback)(async()=>{try{let e=await (0,g.pickFiles)();if(!e)return;for(let t of e){let e=crypto.randomUUID();F(r=>[...r,{id:e,name:t.name,size:t.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let r=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path,sessionId:ex.current})});if(!r.ok){let t=await r.json().catch(()=>({error:"Upload failed"}));F(t=>t.filter(t=>t.id!==e)),eh(t.error??"Upload failed");return}let a=await r.json();F(t=>t.some(t=>t.id!==e&&t.path===a.path)?t.filter(t=>t.id!==e):t.map(t=>t.id===e?{...a,id:e,loading:!1}:t))}catch{F(t=>t.filter(t=>t.id!==e)),eh("Upload failed")}}}catch{}},[]),eE=(0,r.useCallback)(e=>{F(t=>t.filter(t=>t.id!==e))},[]),eR=(0,r.useCallback)((e,t)=>{F(r=>r.map(r=>r.id===e?{...r,notes:t}:r))},[]);return{validRepoPath:u,canPush:eg,isDirty:ew,computedPush:!!H||L||M,computedOpenPr:!!H||M,description:P,setDescription:T,attachments:S,approvalGates:E,setApprovalGates:R,push:L,setPush:A,openPr:M,setOpenPr:O,ciWatchEnabled:I,setCiWatchEnabled:z,enableEvidence:U,setEnableEvidence:B,commitEvidence:G,setCommitEvidence:W,parentId:$,setParentId:q,fast:K,setFast:Z,pending:J,setPending:V,forkAndPr:H,setForkAndPr:Q,commitSpecs:X,setCommitSpecs:Y,rebaseBeforeBranch:_,setRebaseBeforeBranch:ee,overrideAgent:et,setOverrideAgent:er,overrideModel:ea,setOverrideModel:es,selectedRepoPath:ei,setSelectedRepoPath:eo,localRepos:en,setLocalRepos:el,isDragOver:ec,uploadError:ep,isPromptFocused:eu,setIsPromptFocused:em,sessionIdRef:ex,currentAgentType:l,currentModel:c,attemptClose:eC,handleFiles:ey,handleDragEnter:eD,handleDragLeave:eN,handleDragOver:ek,handleDrop:eP,handlePaste:eT,handleSubmit:eS,handleAddFiles:eF,handleRemoveFile:eE,handleNotesChange:eR,resetForm:ev}}({open:e,onClose:a,onSubmit:s,repositoryPath:i,workflowDefaults:v,repositories:C,initialParentId:y,currentAgentType:D,currentModel:N,initialDescription:k,canPushDirectly:P}),E=(0,r.useRef)(null),R=(0,r.useCallback)(e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&(e.preventDefault(),E.current?.requestSubmit())},[]),A=w&&w.length>0,M=!F.validRepoPath&&void 0!==C,O=!F.validRepoPath&&!F.selectedRepoPath;return(0,t.jsx)(l.BaseDrawer,{open:e,onClose:F.attemptClose,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(c.DrawerTitle,{children:S("createDrawer.title")})]}),o?(0,t.jsx)(c.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(h.Badge,{variant:"secondary",children:S("createDrawer.creating")})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"outline",onClick:F.attemptClose,disabled:o,children:S("createDrawer.cancel")}),(0,t.jsx)(d.Button,{type:"submit",form:"create-feature-form",disabled:!F.description.trim()||o||O,children:S(o?"createDrawer.creating":"createDrawer.createFeature")})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsx)(u.TooltipProvider,{delayDuration:400,children:(0,t.jsxs)("form",{ref:E,id:"create-feature-form",onSubmit:F.handleSubmit,onKeyDown:R,className:"flex flex-col gap-4",children:[M?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)(Z,{repositories:F.localRepos,value:F.selectedRepoPath,onChange:F.setSelectedRepoPath,onAddRepository:e=>{F.setLocalRepos(t=>[...t,e]),F.setSelectedRepoPath(e.path)},disabled:o})]}):F.validRepoPath?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,t.jsx)(p.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.repository")}),(0,t.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:C?.find(e=>e.path===F.validRepoPath)?.name??F.validRepoPath.split("/").pop()})]}):null,(0,t.jsx)(T,{description:F.description,onDescriptionChange:F.setDescription,attachments:F.attachments,onRemoveFile:F.handleRemoveFile,onNotesChange:F.handleNotesChange,onPaste:F.handlePaste,onDragEnter:F.handleDragEnter,onDragLeave:F.handleDragLeave,onDragOver:F.handleDragOver,onDrop:F.handleDrop,onAddFiles:F.handleAddFiles,isDragOver:F.isDragOver,uploadError:F.uploadError,isPromptFocused:F.isPromptFocused,onPromptFocus:()=>F.setIsPromptFocused(!0),onPromptBlur:()=>F.setIsPromptFocused(!1),fast:F.fast,onFastChange:F.setFast,pending:F.pending,onPendingChange:F.setPending,overrideAgent:F.overrideAgent,overrideModel:F.overrideModel,currentAgentType:D,currentModel:N,onAgentModelChange:(e,t)=>{F.setOverrideAgent(e),F.setOverrideModel(t)},isSubmitting:o}),A&&void 0!==y?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(p.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:S("createDrawer.parentFeature")}),(0,t.jsx)(z,{features:w,value:F.parentId,onChange:F.setParentId,disabled:o})]}):null,(0,t.jsx)(L,{approvalGates:F.approvalGates,onApprovalGatesChange:F.setApprovalGates,enableEvidence:F.enableEvidence,onEnableEvidenceChange:F.setEnableEvidence,commitEvidence:F.commitEvidence,onCommitEvidenceChange:F.setCommitEvidence,push:F.push,onPushChange:F.setPush,openPr:F.openPr,onOpenPrChange:F.setOpenPr,ciWatchEnabled:F.ciWatchEnabled,onCiWatchChange:F.setCiWatchEnabled,rebaseBeforeBranch:F.rebaseBeforeBranch,onRebaseBeforeBranchChange:F.setRebaseBeforeBranch,commitSpecs:F.commitSpecs,onCommitSpecsChange:F.setCommitSpecs,forkAndPr:F.forkAndPr,onForkAndPrChange:F.setForkAndPr,canPush:F.canPush,fast:F.fast,computedPush:F.computedPush,computedOpenPr:F.computedOpenPr,isSubmitting:o})]})})})})}e.s(["CreateDrawerClient",0,function({repositoryPath:e,initialParentId:i,initialDescription:n,features:l,repositories:c,workflowDefaults:d,currentAgentType:p,currentModel:h,canPushDirectly:u}){let m=(0,a.useRouter)(),[x,f]=(0,r.useState)(!1),g=(0,a.usePathname)().startsWith("/create"),b=!x&&g;(0,r.useEffect)(()=>{!g&&x&&f(!1)},[g,x]);let j=(0,r.useCallback)(()=>{m.push("/")},[m]),v=(0,r.useCallback)(e=>{f(!0),m.push("/"),o(e).then(t=>{t.error?s.toast.error(t.error):window.dispatchEvent(new CustomEvent("shipit-ai:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{s.toast.error("Failed to create feature"),f(!1)})},[m]);return(0,t.jsx)(J,{open:b,onClose:j,onSubmit:v,repositoryPath:e,features:l,repositories:c,workflowDefaults:d,initialParentId:i,initialDescription:n,isSubmitting:x,currentAgentType:p,currentModel:h,canPushDirectly:u})}],15203)}]);