@shipit-ai/cli 1.164.2-pr11.775607f → 1.164.2-pr6.3fe19cf

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 (604) hide show
  1. package/README.md +7 -3
  2. package/dist/packages/core/src/application/ports/output/services/index.d.ts +0 -1
  3. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/ports/output/services/tool-metadata-service.interface.d.ts +1 -5
  5. package/dist/packages/core/src/application/ports/output/services/tool-metadata-service.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.d.ts +1 -1
  7. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.js +1 -1
  8. package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.d.ts +1 -1
  9. package/dist/packages/core/src/application/use-cases/agents/stop-agent-run.use-case.js +1 -1
  10. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts +1 -1
  11. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +1 -1
  12. package/dist/packages/core/src/application/use-cases/settings/index.d.ts +0 -1
  13. package/dist/packages/core/src/application/use-cases/settings/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/use-cases/settings/index.js +0 -1
  15. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.d.ts +4 -10
  16. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/use-cases/settings/initialize-settings.use-case.js +7 -34
  18. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts +1 -1
  19. package/dist/packages/core/src/application/use-cases/tools/list-tools.use-case.d.ts.map +1 -1
  20. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts +2 -18
  21. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  22. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +5 -16
  23. package/dist/packages/core/src/index.d.ts +2 -2
  24. package/dist/packages/core/src/index.js +2 -2
  25. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  26. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +0 -2
  27. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +0 -2
  29. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +0 -4
  31. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts +1 -1
  32. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.js +1 -1
  33. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts +1 -1
  34. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.js +1 -1
  35. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts +2 -2
  36. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts.map +1 -1
  37. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.js +5 -5
  38. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts +2 -2
  39. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts.map +1 -1
  40. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.js +6 -6
  41. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts +1 -1
  42. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.js +1 -1
  43. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +1 -1
  44. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +1 -1
  45. package/dist/packages/core/src/infrastructure/services/filesystem/shipit-ai-directory.service.d.ts +2 -2
  46. package/dist/packages/core/src/infrastructure/services/filesystem/shipit-ai-directory.service.js +4 -4
  47. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +4 -4
  48. package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +4 -4
  49. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.d.ts +1 -1
  50. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.js +7 -7
  51. package/dist/packages/core/src/infrastructure/services/port.service.d.ts +1 -1
  52. package/dist/packages/core/src/infrastructure/services/port.service.d.ts.map +1 -1
  53. package/dist/packages/core/src/infrastructure/services/port.service.js +1 -1
  54. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts +1 -6
  55. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.js +0 -7
  57. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.d.ts +0 -1
  58. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.d.ts.map +1 -1
  59. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.service.js +1 -4
  60. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/CLAUDE.md +1 -2
  61. package/dist/src/presentation/cli/commands/agent/approve.command.d.ts +1 -1
  62. package/dist/src/presentation/cli/commands/agent/approve.command.js +1 -1
  63. package/dist/src/presentation/cli/commands/agent/delete.command.d.ts +1 -1
  64. package/dist/src/presentation/cli/commands/agent/delete.command.js +1 -1
  65. package/dist/src/presentation/cli/commands/agent/index.d.ts +6 -6
  66. package/dist/src/presentation/cli/commands/agent/index.js +6 -6
  67. package/dist/src/presentation/cli/commands/agent/logs.command.d.ts +3 -3
  68. package/dist/src/presentation/cli/commands/agent/logs.command.js +3 -3
  69. package/dist/src/presentation/cli/commands/agent/ls.command.d.ts +1 -1
  70. package/dist/src/presentation/cli/commands/agent/ls.command.js +1 -1
  71. package/dist/src/presentation/cli/commands/agent/reject.command.d.ts +1 -1
  72. package/dist/src/presentation/cli/commands/agent/reject.command.js +1 -1
  73. package/dist/src/presentation/cli/commands/agent/show.command.d.ts +1 -1
  74. package/dist/src/presentation/cli/commands/agent/show.command.js +1 -1
  75. package/dist/src/presentation/cli/commands/agent/stop.command.d.ts +1 -1
  76. package/dist/src/presentation/cli/commands/agent/stop.command.js +1 -1
  77. package/dist/src/presentation/cli/commands/daemon/start-daemon.d.ts +4 -4
  78. package/dist/src/presentation/cli/commands/daemon/start-daemon.js +4 -4
  79. package/dist/src/presentation/cli/commands/daemon/stop-daemon.d.ts +5 -5
  80. package/dist/src/presentation/cli/commands/daemon/stop-daemon.js +5 -5
  81. package/dist/src/presentation/cli/commands/feat/adopt.command.d.ts +3 -3
  82. package/dist/src/presentation/cli/commands/feat/adopt.command.js +3 -3
  83. package/dist/src/presentation/cli/commands/feat/approve.command.d.ts +1 -1
  84. package/dist/src/presentation/cli/commands/feat/approve.command.js +1 -1
  85. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts +3 -3
  86. package/dist/src/presentation/cli/commands/feat/archive.command.js +3 -3
  87. package/dist/src/presentation/cli/commands/feat/del.command.d.ts +5 -5
  88. package/dist/src/presentation/cli/commands/feat/del.command.js +5 -5
  89. package/dist/src/presentation/cli/commands/feat/index.d.ts +4 -4
  90. package/dist/src/presentation/cli/commands/feat/index.js +4 -4
  91. package/dist/src/presentation/cli/commands/feat/logs.command.d.ts +3 -3
  92. package/dist/src/presentation/cli/commands/feat/logs.command.js +3 -3
  93. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts +3 -3
  94. package/dist/src/presentation/cli/commands/feat/ls.command.js +3 -3
  95. package/dist/src/presentation/cli/commands/feat/new.command.d.ts +3 -3
  96. package/dist/src/presentation/cli/commands/feat/new.command.js +4 -4
  97. package/dist/src/presentation/cli/commands/feat/reject.command.d.ts +1 -1
  98. package/dist/src/presentation/cli/commands/feat/reject.command.js +1 -1
  99. package/dist/src/presentation/cli/commands/feat/resume.command.d.ts +1 -1
  100. package/dist/src/presentation/cli/commands/feat/resume.command.js +1 -1
  101. package/dist/src/presentation/cli/commands/feat/review.command.d.ts +1 -1
  102. package/dist/src/presentation/cli/commands/feat/review.command.js +1 -1
  103. package/dist/src/presentation/cli/commands/feat/show.command.d.ts +1 -1
  104. package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
  105. package/dist/src/presentation/cli/commands/feat/show.command.js +3 -4
  106. package/dist/src/presentation/cli/commands/feat/start.command.d.ts +1 -1
  107. package/dist/src/presentation/cli/commands/feat/start.command.js +1 -1
  108. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts +2 -2
  109. package/dist/src/presentation/cli/commands/feat/unarchive.command.js +2 -2
  110. package/dist/src/presentation/cli/commands/ide-open.command.d.ts +1 -1
  111. package/dist/src/presentation/cli/commands/ide-open.command.js +1 -1
  112. package/dist/src/presentation/cli/commands/log-viewer.d.ts +1 -1
  113. package/dist/src/presentation/cli/commands/log-viewer.js +1 -1
  114. package/dist/src/presentation/cli/commands/repo/add.command.d.ts +3 -3
  115. package/dist/src/presentation/cli/commands/repo/add.command.js +3 -3
  116. package/dist/src/presentation/cli/commands/repo/index.d.ts +4 -4
  117. package/dist/src/presentation/cli/commands/repo/index.js +4 -4
  118. package/dist/src/presentation/cli/commands/repo/ls.command.d.ts +1 -1
  119. package/dist/src/presentation/cli/commands/repo/ls.command.js +1 -1
  120. package/dist/src/presentation/cli/commands/repo/show.command.d.ts +1 -1
  121. package/dist/src/presentation/cli/commands/repo/show.command.js +1 -1
  122. package/dist/src/presentation/cli/commands/restart.command.d.ts +3 -3
  123. package/dist/src/presentation/cli/commands/restart.command.js +5 -5
  124. package/dist/src/presentation/cli/commands/run.command.d.ts +5 -5
  125. package/dist/src/presentation/cli/commands/run.command.js +5 -5
  126. package/dist/src/presentation/cli/commands/session/index.d.ts +3 -3
  127. package/dist/src/presentation/cli/commands/session/index.js +3 -3
  128. package/dist/src/presentation/cli/commands/session/ls.command.d.ts +6 -6
  129. package/dist/src/presentation/cli/commands/session/ls.command.js +6 -6
  130. package/dist/src/presentation/cli/commands/session/show.command.d.ts +3 -3
  131. package/dist/src/presentation/cli/commands/session/show.command.js +3 -3
  132. package/dist/src/presentation/cli/commands/settings/agent.command.d.ts +4 -4
  133. package/dist/src/presentation/cli/commands/settings/agent.command.js +7 -7
  134. package/dist/src/presentation/cli/commands/settings/ide.command.d.ts +3 -3
  135. package/dist/src/presentation/cli/commands/settings/ide.command.js +6 -6
  136. package/dist/src/presentation/cli/commands/settings/index.d.ts +10 -10
  137. package/dist/src/presentation/cli/commands/settings/index.js +10 -10
  138. package/dist/src/presentation/cli/commands/settings/init.command.d.ts +3 -3
  139. package/dist/src/presentation/cli/commands/settings/init.command.js +6 -6
  140. package/dist/src/presentation/cli/commands/settings/language.command.d.ts +2 -2
  141. package/dist/src/presentation/cli/commands/settings/language.command.js +3 -3
  142. package/dist/src/presentation/cli/commands/settings/model.command.d.ts +2 -2
  143. package/dist/src/presentation/cli/commands/settings/model.command.js +3 -3
  144. package/dist/src/presentation/cli/commands/settings/show.command.d.ts +4 -4
  145. package/dist/src/presentation/cli/commands/settings/show.command.js +7 -7
  146. package/dist/src/presentation/cli/commands/settings/workflow.command.d.ts +3 -3
  147. package/dist/src/presentation/cli/commands/settings/workflow.command.js +6 -6
  148. package/dist/src/presentation/cli/commands/start.command.d.ts +3 -3
  149. package/dist/src/presentation/cli/commands/start.command.js +5 -5
  150. package/dist/src/presentation/cli/commands/status.command.d.ts +4 -4
  151. package/dist/src/presentation/cli/commands/status.command.js +4 -4
  152. package/dist/src/presentation/cli/commands/stop.command.d.ts +2 -2
  153. package/dist/src/presentation/cli/commands/stop.command.js +2 -2
  154. package/dist/src/presentation/cli/commands/tools.command.d.ts +1 -1
  155. package/dist/src/presentation/cli/commands/tools.command.js +1 -1
  156. package/dist/src/presentation/cli/commands/ui.command.d.ts +4 -4
  157. package/dist/src/presentation/cli/commands/ui.command.js +7 -7
  158. package/dist/src/presentation/cli/commands/upgrade.command.d.ts +2 -2
  159. package/dist/src/presentation/cli/commands/upgrade.command.js +2 -2
  160. package/dist/src/presentation/cli/commands/version.command.d.ts +2 -2
  161. package/dist/src/presentation/cli/commands/version.command.js +2 -2
  162. package/dist/src/presentation/cli/index.d.ts +3 -3
  163. package/dist/src/presentation/cli/index.js +4 -4
  164. package/dist/src/presentation/cli/ui/index.d.ts +1 -1
  165. package/dist/src/presentation/cli/ui/index.js +1 -1
  166. package/dist/src/presentation/tui/themes/shipit-ai.theme.d.ts +4 -4
  167. package/dist/src/presentation/tui/themes/shipit-ai.theme.js +4 -4
  168. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  169. package/dist/src/presentation/web/app/actions/check-agent-auth.js +24 -69
  170. package/dist/src/presentation/web/app/actions/deploy-feature.js +2 -2
  171. package/dist/src/presentation/web/app/actions/deploy-repository.js +2 -2
  172. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts +0 -1
  173. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  174. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +3 -28
  175. package/dist/src/presentation/web/app/actions/get-merge-review-data.js +3 -3
  176. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  177. package/dist/src/presentation/web/app/layout.js +13 -4
  178. package/dist/src/presentation/web/app/settings/page.d.ts.map +1 -1
  179. package/dist/src/presentation/web/app/settings/page.js +2 -6
  180. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +1 -1
  181. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.d.ts +1 -1
  182. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.stories.js +1 -1
  183. package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.js +1 -1
  184. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +1 -1
  185. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -1
  186. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +2 -2
  187. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +8 -8
  188. package/dist/src/presentation/web/components/common/github-import-dialog/github-import-dialog.js +1 -1
  189. package/dist/src/presentation/web/components/common/inline-attachments/inline-attachments.stories.js +5 -5
  190. package/dist/src/presentation/web/components/common/merge-review/merge-review.stories.js +8 -8
  191. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -1
  192. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.d.ts +2 -2
  193. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/common/shipit-ai-logo/index.js +1 -1
  195. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shipit-ai-logo.d.ts → shep-logo.d.ts} +1 -1
  196. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.d.ts.map +1 -0
  197. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.js +5 -0
  198. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shipit-ai-logo.stories.d.ts → shep-logo.stories.d.ts} +2 -2
  199. package/dist/src/presentation/web/components/common/shipit-ai-logo/shep-logo.stories.d.ts.map +1 -0
  200. package/dist/src/presentation/web/components/common/shipit-ai-logo/{shipit-ai-logo.stories.js → shep-logo.stories.js} +1 -1
  201. package/dist/src/presentation/web/components/common/version-badge/version-badge.stories.js +2 -2
  202. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +1 -1
  203. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
  204. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  205. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +1 -6
  206. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +19 -19
  207. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
  208. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +2 -13
  209. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +1 -1
  210. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts +1 -5
  211. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  212. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +27 -33
  213. package/dist/src/presentation/web/components/features/tools/tool-card.js +1 -1
  214. package/dist/src/presentation/web/components/features/version/version-page-client.js +1 -1
  215. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  216. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +3 -3
  217. package/dist/src/presentation/web/components/ui/sidebar.stories.js +1 -1
  218. package/dist/src/presentation/web/lib/session-scanner.js +2 -2
  219. package/dist/src/presentation/web/lib/version.d.ts +1 -1
  220. package/dist/src/presentation/web/lib/version.js +1 -1
  221. package/dist/src/presentation/web/{proxy.d.ts → middleware.d.ts} +4 -4
  222. package/dist/src/presentation/web/middleware.d.ts.map +1 -0
  223. package/dist/src/presentation/web/{proxy.js → middleware.js} +3 -3
  224. package/dist/src/presentation/web/types/theme.d.ts +1 -1
  225. package/dist/src/presentation/web/types/theme.js +1 -1
  226. package/dist/translations/ar/cli.json +17 -17
  227. package/dist/translations/ar/tui.json +2 -2
  228. package/dist/translations/ar/web.json +5 -7
  229. package/dist/translations/de/cli.json +17 -17
  230. package/dist/translations/de/tui.json +2 -2
  231. package/dist/translations/de/web.json +5 -7
  232. package/dist/translations/en/cli.json +17 -17
  233. package/dist/translations/en/tui.json +2 -2
  234. package/dist/translations/en/web.json +5 -7
  235. package/dist/translations/es/cli.json +17 -17
  236. package/dist/translations/es/tui.json +2 -2
  237. package/dist/translations/es/web.json +5 -7
  238. package/dist/translations/fr/cli.json +17 -17
  239. package/dist/translations/fr/tui.json +2 -2
  240. package/dist/translations/fr/web.json +5 -7
  241. package/dist/translations/he/cli.json +17 -17
  242. package/dist/translations/he/tui.json +2 -2
  243. package/dist/translations/he/web.json +5 -7
  244. package/dist/translations/pt/cli.json +17 -17
  245. package/dist/translations/pt/tui.json +2 -2
  246. package/dist/translations/pt/web.json +5 -7
  247. package/dist/translations/ru/cli.json +17 -17
  248. package/dist/translations/ru/tui.json +2 -2
  249. package/dist/translations/ru/web.json +5 -7
  250. package/dist/tsconfig.build.tsbuildinfo +1 -1
  251. package/package.json +3 -3
  252. package/web/.next/BUILD_ID +1 -1
  253. package/web/.next/build-manifest.json +5 -5
  254. package/web/.next/fallback-build-manifest.json +3 -3
  255. package/web/.next/prerender-manifest.json +3 -3
  256. package/web/.next/required-server-files.js +1 -1
  257. package/web/.next/required-server-files.json +1 -1
  258. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +2 -2
  259. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  260. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -2
  261. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  262. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  263. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +2 -2
  264. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  265. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -2
  266. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +2 -2
  269. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  270. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -2
  271. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  274. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  275. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -2
  276. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  277. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  278. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +2 -2
  279. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  280. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -2
  281. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  282. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  283. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +2 -2
  284. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  285. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -2
  286. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  287. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +2 -2
  289. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  290. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -2
  291. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  292. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  293. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
  294. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  295. package/web/.next/server/app/(dashboard)/chat/page.js +1 -2
  296. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  297. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +2 -2
  299. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  300. package/web/.next/server/app/(dashboard)/create/page.js +1 -2
  301. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  302. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  303. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +2 -2
  304. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  305. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -2
  306. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  307. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  308. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +2 -2
  309. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  310. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -2
  311. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  312. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  313. package/web/.next/server/app/(dashboard)/page/build-manifest.json +2 -2
  314. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  315. package/web/.next/server/app/(dashboard)/page.js +1 -2
  316. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  317. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  318. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +2 -2
  319. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  320. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -2
  321. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  322. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  323. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +2 -2
  324. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  325. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -2
  326. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  327. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  328. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  329. package/web/.next/server/app/_global-error.html +1 -1
  330. package/web/.next/server/app/_global-error.rsc +1 -1
  331. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  332. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  333. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  334. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  335. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  336. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  337. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  338. package/web/.next/server/app/_not-found/page.js +1 -2
  339. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  340. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  341. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  342. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  343. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  344. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  345. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  346. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  347. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  348. package/web/.next/server/app/settings/page/build-manifest.json +2 -2
  349. package/web/.next/server/app/settings/page/server-reference-manifest.json +18 -42
  350. package/web/.next/server/app/settings/page.js +2 -3
  351. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  352. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  353. package/web/.next/server/app/skills/page/build-manifest.json +2 -2
  354. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  355. package/web/.next/server/app/skills/page.js +2 -2
  356. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  357. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  358. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  359. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  360. package/web/.next/server/app/tools/page.js +2 -2
  361. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  362. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  363. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  364. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  365. package/web/.next/server/app/version/page.js +1 -2
  366. package/web/.next/server/app/version/page.js.nft.json +1 -1
  367. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  368. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js +1 -1
  369. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  370. package/web/.next/server/chunks/[root-of-the-server]__0.2exzi._.js.map +1 -1
  371. package/web/.next/server/chunks/[root-of-the-server]__02xmnal._.js.map +1 -1
  372. package/web/.next/server/chunks/[root-of-the-server]__04jjtl_._.js.map +1 -1
  373. package/web/.next/server/chunks/[root-of-the-server]__07suer1._.js.map +1 -1
  374. package/web/.next/server/chunks/[root-of-the-server]__09118p2._.js.map +1 -1
  375. package/web/.next/server/chunks/[root-of-the-server]__0_.w-eb._.js.map +1 -1
  376. package/web/.next/server/chunks/[root-of-the-server]__0ip_e1x._.js.map +1 -1
  377. package/web/.next/server/chunks/{[root-of-the-server]__0l1p8bx._.js → [root-of-the-server]__0ob3z53._.js} +2 -2
  378. package/web/.next/server/chunks/{[root-of-the-server]__0l1p8bx._.js.map → [root-of-the-server]__0ob3z53._.js.map} +1 -1
  379. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  380. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  381. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  382. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  383. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  384. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  385. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  386. package/web/.next/server/chunks/ssr/11es_next_dist_0e36~wi._.js +1 -1
  387. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js +1 -1
  388. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  390. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.b9wam._.js +4 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.b9wam._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js +4 -0
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__05lzb~i._.js +4 -0
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__05lzb~i._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js +3 -0
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js.map +1 -0
  399. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jp4rkd._.js +4 -0
  400. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jp4rkd._.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js +4 -0
  402. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js.map +1 -0
  403. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qh.wn.._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  405. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js +4 -0
  407. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js +4 -0
  409. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zjrc4e._.js +4 -0
  411. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zjrc4e._.js.map +1 -0
  412. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js +1 -1
  413. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/_0__4si~._.js +4 -0
  415. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -0
  416. package/web/.next/server/chunks/ssr/_0_m17kl._.js +4 -0
  417. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/_0d4miu.._.js +4 -0
  419. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/_0e5cv3q._.js +1 -1
  421. package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +1 -1
  422. package/web/.next/server/chunks/ssr/_0e8ern9._.js +4 -0
  423. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/_0ez.1o4._.js +1 -1
  425. package/web/.next/server/chunks/ssr/_0ez.1o4._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/{_07h3d2r._.js → _0g_ubt-._.js} +2 -2
  427. package/web/.next/server/chunks/ssr/{_07h3d2r._.js.map → _0g_ubt-._.js.map} +1 -1
  428. package/web/.next/server/chunks/ssr/_0hovej-._.js +6 -0
  429. package/web/.next/server/chunks/ssr/_0hovej-._.js.map +1 -0
  430. package/web/.next/server/chunks/ssr/{_0kmi7qx._.js → _0kpppnf._.js} +2 -2
  431. package/web/.next/server/chunks/ssr/{_0kmi7qx._.js.map → _0kpppnf._.js.map} +1 -1
  432. package/web/.next/server/chunks/ssr/_0p3zs6p._.js +3 -0
  433. package/web/.next/server/chunks/ssr/_0p3zs6p._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/_0qpq3xl._.js +3 -0
  435. package/web/.next/server/chunks/ssr/_0qpq3xl._.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +4 -0
  437. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -0
  438. package/web/.next/server/chunks/ssr/{_01mq~sm._.js → _0sgeiju._.js} +2 -2
  439. package/web/.next/server/chunks/ssr/{_01mq~sm._.js.map → _0sgeiju._.js.map} +1 -1
  440. package/web/.next/server/chunks/ssr/_0t59q8r._.js +4 -0
  441. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -0
  442. package/web/.next/server/chunks/ssr/_0v.yfmg._.js +1 -1
  443. package/web/.next/server/chunks/ssr/_0v.yfmg._.js.map +1 -1
  444. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  445. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  446. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +4 -0
  447. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -0
  448. package/web/.next/server/chunks/ssr/_0~ev6dw._.js +6 -0
  449. package/web/.next/server/chunks/ssr/_0~ev6dw._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/_1161g9x._.js +4 -0
  451. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -0
  452. package/web/.next/server/chunks/ssr/_11bn8co._.js +3 -0
  453. package/web/.next/server/chunks/ssr/{_0iu_1qd._.js.map → _11bn8co._.js.map} +1 -1
  454. package/web/.next/server/chunks/ssr/_11kuznh._.js +1 -1
  455. package/web/.next/server/chunks/ssr/_11kuznh._.js.map +1 -1
  456. package/web/.next/server/chunks/ssr/_13euo-f._.js +1 -1
  457. package/web/.next/server/chunks/ssr/_13euo-f._.js.map +1 -1
  458. package/web/.next/server/chunks/ssr/src_presentation_web_05-w-~v._.js +1 -1
  459. package/web/.next/server/chunks/ssr/src_presentation_web_05-w-~v._.js.map +1 -1
  460. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +3 -0
  461. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -0
  462. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +3 -0
  463. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -0
  464. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  465. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
  466. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js +1 -1
  467. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +1 -1
  468. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  469. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  470. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
  471. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
  472. package/web/.next/server/edge/chunks/0pax_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js +3 -0
  473. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js.map +1 -0
  474. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js +3 -0
  475. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js.map +1 -0
  476. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js +11 -0
  477. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js.map +1 -0
  478. package/web/.next/server/functions-config-manifest.json +1 -11
  479. package/web/.next/server/middleware/middleware-manifest.json +27 -1
  480. package/web/.next/server/middleware-build-manifest.js +5 -5
  481. package/web/.next/server/middleware-manifest.json +32 -2
  482. package/web/.next/server/pages/500.html +1 -1
  483. package/web/.next/server/server-reference-manifest.js +1 -1
  484. package/web/.next/server/server-reference-manifest.json +56 -80
  485. package/web/.next/static/{By28Wf8vGZt9hoLKZ7crq → LyRhI-nUQ02-98fDJiMLy}/_clientMiddlewareManifest.js +1 -1
  486. package/web/.next/static/chunks/0-jmtczbfhww-.js +1 -0
  487. package/web/.next/static/chunks/{0.40n4_astfrz.js → 04qpdjcm512g_.js} +1 -1
  488. package/web/.next/static/chunks/{0k~ndbx22w1sv.js → 0662ovdbjb4c7.js} +1 -1
  489. package/web/.next/static/chunks/{0~er~22zwvx0i.js → 07lrq10rx0tp1.js} +1 -1
  490. package/web/.next/static/chunks/{08iuksm8rvb09.js → 0bdtgeoys8bq..js} +1 -1
  491. package/web/.next/static/chunks/{0w1dm_upf-ny-.js → 0cd4c0fnzonag.js} +2 -2
  492. package/web/.next/static/chunks/0d9oefqrs17__.js +1 -0
  493. package/web/.next/static/chunks/0dr6q94jmx86b.css +1 -0
  494. package/web/.next/static/chunks/0hm.c6pg~a912.js +3 -0
  495. package/web/.next/static/chunks/{0jq39fav04od4.js → 0qxmrjjfpk8kp.js} +1 -1
  496. package/web/.next/static/chunks/{15m2wfd5k_7fj.js → 0rnvcu2blaow4.js} +1 -1
  497. package/web/.next/static/chunks/{0wmckrtphfa12.js → 0vlx6s5d1~d-w.js} +1 -1
  498. package/web/.next/static/chunks/0w79dc4z8jqex.js +1 -0
  499. package/web/.next/static/chunks/{0hvks4l5xk0w7.js → 0~dcnoxku3oi_.js} +2 -2
  500. package/web/.next/static/chunks/{180fge5je168v.js → 12bym6~-bgu1k.js} +2 -2
  501. package/web/.next/static/chunks/{168bqqzh8s-5a.js → 13-55s12yx1lp.js} +1 -1
  502. package/web/.next/static/chunks/13ihgyc1p3992.js +1 -0
  503. package/web/.next/static/chunks/{0riti1bs-erm~.js → 13xg0bjtuso~r.js} +1 -1
  504. package/web/.next/static/chunks/{0di7y52vgn.0c.js → 1515oj_4x~qsj.js} +1 -1
  505. package/web/.next/static/chunks/{turbopack-0ve8f54_veg.u.js → turbopack-10upsk2jydmq4.js} +1 -1
  506. package/web/package.json +1 -1
  507. package/web/public/favicon-dark.svg +6 -0
  508. package/web/public/favicon-light.svg +6 -0
  509. package/web/public/icons/agents/openai.svg +1 -1
  510. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts +0 -54
  511. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts.map +0 -1
  512. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.js +0 -8
  513. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts +0 -18
  514. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts.map +0 -1
  515. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.js +0 -40
  516. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts +0 -38
  517. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts.map +0 -1
  518. package/dist/packages/core/src/infrastructure/services/environment-detector.service.js +0 -196
  519. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +0 -20
  520. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/codex-cli.json +0 -31
  521. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +0 -19
  522. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +0 -24
  523. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +0 -19
  524. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts +0 -14
  525. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts.map +0 -1
  526. package/dist/src/presentation/web/app/actions/get-available-editors.js +0 -24
  527. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts +0 -14
  528. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts.map +0 -1
  529. package/dist/src/presentation/web/app/actions/get-available-shells.js +0 -22
  530. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +0 -1
  531. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +0 -8
  532. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.stories.d.ts.map +0 -1
  533. package/dist/src/presentation/web/proxy.d.ts.map +0 -1
  534. package/web/.next/server/chunks/[externals]__11vad82._.js +0 -3
  535. package/web/.next/server/chunks/[externals]__11vad82._.js.map +0 -1
  536. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js +0 -20
  537. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js.map +0 -1
  538. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +0 -3
  539. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +0 -1
  540. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +0 -3
  541. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +0 -1
  542. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +0 -3
  543. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +0 -1
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js +0 -3
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js.map +0 -1
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js +0 -3
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js.map +0 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js +0 -3
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js.map +0 -1
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js +0 -3
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js.map +0 -1
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js +0 -4
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js.map +0 -1
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js +0 -3
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js.map +0 -1
  556. package/web/.next/server/chunks/ssr/_0iu_1qd._.js +0 -3
  557. package/web/.next/server/chunks/ssr/_0jpbsh_._.js +0 -4
  558. package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +0 -1
  559. package/web/.next/server/chunks/ssr/_0n.xy38._.js +0 -3
  560. package/web/.next/server/chunks/ssr/_0n.xy38._.js.map +0 -1
  561. package/web/.next/server/chunks/ssr/_0rvaoj4._.js +0 -3
  562. package/web/.next/server/chunks/ssr/_0rvaoj4._.js.map +0 -1
  563. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +0 -3
  564. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +0 -1
  565. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +0 -3
  566. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +0 -1
  567. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +0 -5
  568. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +0 -1
  569. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +0 -3
  570. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +0 -1
  571. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +0 -3
  572. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +0 -1
  573. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +0 -5
  574. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +0 -1
  575. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +0 -3
  576. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +0 -1
  577. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +0 -3
  578. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +0 -1
  579. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +0 -3
  580. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +0 -1
  581. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +0 -3
  582. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +0 -1
  583. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +0 -3
  584. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +0 -1
  585. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +0 -3
  586. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map +0 -1
  587. package/web/.next/server/middleware.js +0 -5
  588. package/web/.next/server/middleware.js.map +0 -5
  589. package/web/.next/server/middleware.js.nft.json +0 -1
  590. package/web/.next/static/chunks/0lf2gfdmdwi1h.js +0 -1
  591. package/web/.next/static/chunks/0ofd4.2si.1fu.js +0 -1
  592. package/web/.next/static/chunks/0owq3udpij7ms.js +0 -3
  593. package/web/.next/static/chunks/0r5dju6f1-i38.css +0 -1
  594. package/web/.next/static/chunks/120bhvx_z6r45.js +0 -1
  595. package/web/.next/static/chunks/14ynw-awudczr.js +0 -1
  596. package/web/public/apple-touch-icon.png +0 -0
  597. package/web/public/favicon-32x32.png +0 -0
  598. package/web/public/icon-192.png +0 -0
  599. package/web/public/icon-512.png +0 -0
  600. package/web/public/shipit-brain.png +0 -0
  601. package/web/public/shipit-icon.svg +0 -68
  602. package/web/public/shipit-logo.png +0 -0
  603. /package/web/.next/static/{By28Wf8vGZt9hoLKZ7crq → LyRhI-nUQ02-98fDJiMLy}/_buildManifest.js +0 -0
  604. /package/web/.next/static/{By28Wf8vGZt9hoLKZ7crq → LyRhI-nUQ02-98fDJiMLy}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/app/actions/create-feature.ts","../../../../../../../src/presentation/web/app/actions/compose-user-input.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shipit-ai/core/application/use-cases/settings/load-settings.use-case';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const loadSettings = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const settings = await loadSettings.execute();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shipit-ai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateFeatureUseCase } from '@shipit-ai/core/application/use-cases/features/create/create-feature.use-case';\nimport type { Feature } from '@shipit-ai/core/domain/generated/output';\nimport { composeUserInput } from './compose-user-input';\n\ninterface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\ninterface ApprovalGates {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n}\n\ninterface CreateFeatureInput {\n description: string;\n repositoryPath: string;\n attachments?: Attachment[];\n sessionId?: string;\n approvalGates?: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge?: boolean;\n };\n push?: boolean;\n openPr?: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast?: boolean;\n /** When true, create the feature in pending state (no agent spawned). */\n pending?: boolean;\n /** Fork repo and create PR to upstream at merge time. */\n forkAndPr?: boolean;\n /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */\n commitSpecs?: boolean;\n /** Enable CI watch/fix loop after push. */\n ciWatchEnabled?: boolean;\n /** Enable evidence collection after implementation. */\n enableEvidence?: boolean;\n /** Commit evidence to PR. */\n commitEvidence?: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model identifier for this feature run */\n model?: string;\n /** Sync main from remote before creating the feature branch (default: true). */\n rebaseBeforeBranch?: boolean;\n}\n\nexport async function createFeature(\n input: CreateFeatureInput\n): Promise<{ feature?: Feature; error?: string }> {\n const {\n description,\n repositoryPath,\n attachments,\n sessionId,\n approvalGates,\n push,\n openPr,\n parentId,\n fast,\n pending,\n forkAndPr,\n commitSpecs,\n ciWatchEnabled,\n enableEvidence,\n commitEvidence,\n agentType,\n model,\n rebaseBeforeBranch,\n } = input;\n\n if (!description?.trim()) {\n return { error: 'description is required' };\n }\n\n if (!repositoryPath?.trim()) {\n return { error: 'repositoryPath is required' };\n }\n\n const userInput = composeUserInput(description, attachments);\n const gates: ApprovalGates = {\n allowPrd: approvalGates?.allowPrd ?? false,\n allowPlan: approvalGates?.allowPlan ?? false,\n allowMerge: approvalGates?.allowMerge ?? false,\n };\n\n try {\n const createFeatureUseCase = resolve<CreateFeatureUseCase>('CreateFeatureUseCase');\n\n // Phase 1 (fast): create DB record with real UUID — returns immediately\n const { feature, shouldSpawn } = await createFeatureUseCase.createRecord({\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n description,\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n });\n\n // Phase 2 (background): metadata generation, worktree, spec, agent spawn\n // Fire-and-forget — the UI gets the real feature ID immediately\n createFeatureUseCase\n .initializeAndSpawn(\n feature,\n {\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n },\n shouldSpawn\n )\n .catch((err: unknown) => {\n // eslint-disable-next-line no-console\n console.error('[createFeature] initializeAndSpawn failed:', err);\n });\n\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create feature';\n return { error: message };\n }\n}\n","interface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\nexport function composeUserInput(\n description: string,\n attachments: Attachment[] | undefined\n): string {\n if (!attachments || attachments.length === 0) {\n return description;\n }\n\n const refs = attachments\n .map((a) => (a.notes?.trim() ? `@${a.path} [Note: ${a.notes.trim()}]` : `@${a.path}`))\n .join(' ');\n return `${description}\\n\\n${refs}`;\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE9'\nexport {openIde as '40878a5c2b682e29562c8791dfc25ed9aef19a81c6'} from 'ACTIONS_MODULE10'\nexport {openShell as '4036b65d6919cb5b837c12052900f291047f441c36'} from 'ACTIONS_MODULE11'\nexport {openFolder as '4068261a4977d7b089504f2e2aee221a19f160ba37'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '409f10d5aa44132ca6af28d7fe3770e62669057fd0'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '00d367b46aed27695f8f3695cd39fbdb56f8335e91'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00fff489343a59b3b724e92d94b002ec1f299913ac'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4079d90fe48f4aa66a1611946782347e16ed8a93ee'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '404e501db65c8e9bdd1917091b2842fdc20546fd63'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40465f50d58004fdaa88c885fe6230ca0bdcd84f9f'} from 'ACTIONS_MODULE21'\nexport {startFeature as '408c6fd8467f047dd4c7641e2d2e3c400a4c76661a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40ff87b72726bd521f89733cd544e1ec959d04672e'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '406a6202e7aa1f12a0b44ec52473d66df2f3ff621b'} from 'ACTIONS_MODULE24'\nexport {addRepository as '400c75c1b4436243d60d7220bab0a7a02c04a4353a'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402a84bafc66bd852952f74a1c9d9c34234b6a27ed'} from 'ACTIONS_MODULE26'\nexport {getWorkflowDefaults as '00d36307ade90b40c6208aa26adc2cb9fb94195b63'} from 'ACTIONS_MODULE27'\nexport {getViewerPermission as '405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b'} from 'ACTIONS_MODULE28'\nexport {createFeature as '40f3fc4b239fde1a5cdae27a263b607dbdb1e34710'} from 'ACTIONS_MODULE29'\nexport {getViewerPermission as '405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b'} from 'ACTIONS_MODULE28'\n"],"names":["getWorkflowDefaults","loadSettings","settings","execute","workflow","approvalGates","allowPrd","approvalGateDefaults","allowPlan","allowMerge","push","pushOnImplementationComplete","openPr","openPrOnImplementationComplete","ciWatchEnabled","enableEvidence","commitEvidence","fast","defaultFastMode","composeUserInput","description","attachments","length","refs","map","a","notes","trim","path","join"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[35556,a=>{"use strict";var b=a.i(2211),c=a.i(74533),d=a.i(12057),e=a.i(50961);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"6048a1fc56e12ca4bb3a044cb500436901333614bd",null),(0,b.registerServerReference)(i,"604198a57068a66034ed8c29aa864b8583d2f81363",null),a.s(["getGitRepoInfo",0,h])},29507,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(33841),i=a.i(46646),j=a.i(68670),k=a.i(85321),l=a.i(84095),m=a.i(56799),n=a.i(80496),o=a.i(93225),p=a.i(94691),q=a.i(41872),r=a.i(9959),s=a.i(79124),t=a.i(29207),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(35556);a.s([],37447),a.i(37447),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00d367b46aed27695f8f3695cd39fbdb56f8335e91",()=>r.checkAgentAuth,"00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1",()=>q.isAgentSetupComplete,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"00fff489343a59b3b724e92d94b002ec1f299913ac",()=>s.checkToolStatus,"400c75c1b4436243d60d7220bab0a7a02c04a4353a",()=>A.addRepository,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>j.stopDeployment,"402a84bafc66bd852952f74a1c9d9c34234b6a27ed",()=>B.deleteRepository,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"4036b65d6919cb5b837c12052900f291047f441c36",()=>m.openShell,"40465f50d58004fdaa88c885fe6230ca0bdcd84f9f",()=>w.resumeFeature,"404e501db65c8e9bdd1917091b2842fdc20546fd63",()=>u.archiveFeature,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>h.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>k.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>i.deployRepository,"4068261a4977d7b089504f2e2aee221a19f160ba37",()=>n.openFolder,"406a6202e7aa1f12a0b44ec52473d66df2f3ff621b",()=>z.unarchiveFeature,"4079d90fe48f4aa66a1611946782347e16ed8a93ee",()=>t.getFeatureMetadata,"40878a5c2b682e29562c8791dfc25ed9aef19a81c6",()=>l.openIde,"408c6fd8467f047dd4c7641e2d2e3c400a4c76661a",()=>x.startFeature,"409f10d5aa44132ca6af28d7fe3770e62669057fd0",()=>o.syncRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>p.getDeploymentLogs,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"40ff87b72726bd521f89733cd544e1ec959d04672e",()=>y.stopFeature,"6048a1fc56e12ca4bb3a044cb500436901333614bd",()=>C.getGitRepoInfo,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel,"78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52",()=>v.deleteFeature],29507)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_08fy2mf._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted)\n git(repositoryPath, ['diff', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE9'\nexport {openIde as '40878a5c2b682e29562c8791dfc25ed9aef19a81c6'} from 'ACTIONS_MODULE10'\nexport {openShell as '4036b65d6919cb5b837c12052900f291047f441c36'} from 'ACTIONS_MODULE11'\nexport {openFolder as '4068261a4977d7b089504f2e2aee221a19f160ba37'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '409f10d5aa44132ca6af28d7fe3770e62669057fd0'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '00d367b46aed27695f8f3695cd39fbdb56f8335e91'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00fff489343a59b3b724e92d94b002ec1f299913ac'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4079d90fe48f4aa66a1611946782347e16ed8a93ee'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '404e501db65c8e9bdd1917091b2842fdc20546fd63'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40465f50d58004fdaa88c885fe6230ca0bdcd84f9f'} from 'ACTIONS_MODULE21'\nexport {startFeature as '408c6fd8467f047dd4c7641e2d2e3c400a4c76661a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40ff87b72726bd521f89733cd544e1ec959d04672e'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '406a6202e7aa1f12a0b44ec52473d66df2f3ff621b'} from 'ACTIONS_MODULE24'\nexport {addRepository as '400c75c1b4436243d60d7220bab0a7a02c04a4353a'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402a84bafc66bd852952f74a1c9d9c34234b6a27ed'} from 'ACTIONS_MODULE26'\nexport {getGitRepoInfo as '6048a1fc56e12ca4bb3a044cb500436901333614bd'} from 'ACTIONS_MODULE27'\n"],"names":["execFileAsync","git","cwd","args","stdout","timeout","trim","getGitRepoInfo","repositoryPath","commitLimit","empty","commits","branches","remotes","tags","stashCount","currentBranch","diffStats","workingTree","staged","modified","untracked","error","results","Promise","allSettled","val","i","status","value","split","filter","Boolean","map","line","hash","shortHash","subject","author","relativeDate","length","branch","slice","isCurrent","startsWith","clean","name","lastCommitDate","remoteMap","Map","forEach","match","sanitized","replace","set","Array","from","url","statusLines","x","y","diffLine","files","ins","del","filesChanged","parseInt","insertions","deletions","getGitLog","limit","info","entries"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[35556,a=>{"use strict";var b=a.i(2211),c=a.i(74533),d=a.i(12057),e=a.i(50961);let f=(0,d.promisify)(c.execFile);async function g(a,b){let{stdout:c}=await f("git",b,{cwd:a,timeout:5e3});return c.trim()}async function h(a,b=8){if(!a.trim())return{commits:[],branches:[],remotes:[],tags:[],stashCount:0,currentBranch:"",diffStats:null,workingTree:{staged:0,modified:0,untracked:0},error:"Repository path is required"};let c=await Promise.allSettled([g(a,["log",`--max-count=${b}`,"--format=%H%x00%h%x00%s%x00%an%x00%cr","--no-color"]),g(a,["branch","--show-current"]),g(a,["branch","--sort=-committerdate","--format=%(HEAD)%(refname:short)%00%(committerdate:relative)","--no-color"]),g(a,["remote","-v"]),g(a,["tag","--sort=-creatordate","-l","--format=%(refname:short)"]),g(a,["stash","list"]),g(a,["status","--porcelain"]),g(a,["diff","--shortstat"])]),d=a=>"fulfilled"===c[a].status?c[a].value:"",e=d(0).split("\n").filter(Boolean).map(a=>{let[b,c,d,e,f]=a.split("\0");return{hash:b,shortHash:c,subject:d,author:e,relativeDate:f}}),f=d(1);e.length>0&&f&&(e[0].branch=f);let i=d(2).split("\n").filter(Boolean).slice(0,10).map(a=>{let b=a.startsWith("*"),[c,d]=(b?a.slice(1):a).split("\0");return{name:c.trim(),isCurrent:b,lastCommitDate:d?.trim()??""}}),j=new Map;d(3).split("\n").filter(Boolean).forEach(a=>{let b=a.match(/^(\S+)\s+(\S+)\s+\(fetch\)/);if(b){let a=b[2].replace(/\/\/[^@]+@/,"//").replace(/x-access-token:[^@]+@/,"");j.set(b[1],a)}});let k=Array.from(j,([a,b])=>({name:a,url:b})),l=d(4).split("\n").filter(Boolean).slice(0,5),m=d(5).split("\n").filter(Boolean).length,n=d(6).split("\n").filter(Boolean),o={staged:0,modified:0,untracked:0};for(let a of n){let b=a[0],c=a[1];"?"===b&&"?"===c?o.untracked++:" "!==b&&"?"!==b&&o.staged++," "!==c&&"?"!==c&&o.modified++}let p=null,q=d(7);if(q){let a=q.match(/(\d+) file/),b=q.match(/(\d+) insertion/),c=q.match(/(\d+) deletion/);p={filesChanged:a?parseInt(a[1],10):0,insertions:b?parseInt(b[1],10):0,deletions:c?parseInt(c[1],10):0}}return{commits:e,branches:i,remotes:k,tags:l,stashCount:m,currentBranch:f,diffStats:p,workingTree:o}}async function i(a,b=10){let c=await h(a,b);return{entries:c.commits,error:c.error}}(0,e.ensureServerEntryExports)([h,i]),(0,b.registerServerReference)(h,"6048a1fc56e12ca4bb3a044cb500436901333614bd",null),(0,b.registerServerReference)(i,"604198a57068a66034ed8c29aa864b8583d2f81363",null),a.s(["getGitRepoInfo",0,h])},5357,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(33841),i=a.i(46646),j=a.i(68670),k=a.i(85321),l=a.i(84095),m=a.i(56799),n=a.i(80496),o=a.i(93225),p=a.i(94691),q=a.i(41872),r=a.i(9959),s=a.i(79124),t=a.i(29207),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(35556);a.s([],3748),a.i(3748),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00d367b46aed27695f8f3695cd39fbdb56f8335e91",()=>r.checkAgentAuth,"00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1",()=>q.isAgentSetupComplete,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"00fff489343a59b3b724e92d94b002ec1f299913ac",()=>s.checkToolStatus,"400c75c1b4436243d60d7220bab0a7a02c04a4353a",()=>A.addRepository,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>j.stopDeployment,"402a84bafc66bd852952f74a1c9d9c34234b6a27ed",()=>B.deleteRepository,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"4036b65d6919cb5b837c12052900f291047f441c36",()=>m.openShell,"40465f50d58004fdaa88c885fe6230ca0bdcd84f9f",()=>w.resumeFeature,"404e501db65c8e9bdd1917091b2842fdc20546fd63",()=>u.archiveFeature,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>h.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>k.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>i.deployRepository,"4068261a4977d7b089504f2e2aee221a19f160ba37",()=>n.openFolder,"406a6202e7aa1f12a0b44ec52473d66df2f3ff621b",()=>z.unarchiveFeature,"4079d90fe48f4aa66a1611946782347e16ed8a93ee",()=>t.getFeatureMetadata,"40878a5c2b682e29562c8791dfc25ed9aef19a81c6",()=>l.openIde,"408c6fd8467f047dd4c7641e2d2e3c400a4c76661a",()=>x.startFeature,"409f10d5aa44132ca6af28d7fe3770e62669057fd0",()=>o.syncRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>p.getDeploymentLogs,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"40ff87b72726bd521f89733cd544e1ec959d04672e",()=>y.stopFeature,"6048a1fc56e12ca4bb3a044cb500436901333614bd",()=>C.getGitRepoInfo,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel,"78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52",()=>v.deleteFeature],5357)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_0f~udu1._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-git-log.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execFileAsync = promisify(execFile);\n\nasync function git(cwd: string, args: string[]): Promise<string> {\n const { stdout } = await execFileAsync('git', args, { cwd, timeout: 5000 });\n return stdout.trim();\n}\n\nexport interface GitLogEntry {\n hash: string;\n shortHash: string;\n subject: string;\n author: string;\n relativeDate: string;\n branch?: string;\n}\n\nexport interface GitBranchInfo {\n name: string;\n isCurrent: boolean;\n lastCommitDate: string;\n}\n\nexport interface GitRemoteInfo {\n name: string;\n url: string;\n}\n\nexport interface GitWorkingTreeStatus {\n staged: number;\n modified: number;\n untracked: number;\n}\n\nexport interface GitDiffStats {\n filesChanged: number;\n insertions: number;\n deletions: number;\n}\n\nexport interface GitRepoInfo {\n commits: GitLogEntry[];\n branches: GitBranchInfo[];\n remotes: GitRemoteInfo[];\n tags: string[];\n stashCount: number;\n currentBranch: string;\n diffStats: GitDiffStats | null;\n workingTree: GitWorkingTreeStatus;\n error?: string;\n}\n\nexport async function getGitRepoInfo(\n repositoryPath: string,\n commitLimit = 8\n): Promise<GitRepoInfo> {\n const empty: GitRepoInfo = {\n commits: [],\n branches: [],\n remotes: [],\n tags: [],\n stashCount: 0,\n currentBranch: '',\n diffStats: null,\n workingTree: { staged: 0, modified: 0, untracked: 0 },\n };\n\n if (!repositoryPath.trim()) {\n return { ...empty, error: 'Repository path is required' };\n }\n\n const results = await Promise.allSettled([\n // 0: commits\n git(repositoryPath, [\n 'log',\n `--max-count=${commitLimit}`,\n '--format=%H%x00%h%x00%s%x00%an%x00%cr',\n '--no-color',\n ]),\n // 1: current branch\n git(repositoryPath, ['branch', '--show-current']),\n // 2: branches with dates\n git(repositoryPath, [\n 'branch',\n '--sort=-committerdate',\n '--format=%(HEAD)%(refname:short)%00%(committerdate:relative)',\n '--no-color',\n ]),\n // 3: remotes\n git(repositoryPath, ['remote', '-v']),\n // 4: tags (recent 5)\n git(repositoryPath, ['tag', '--sort=-creatordate', '-l', '--format=%(refname:short)']),\n // 5: stash count\n git(repositoryPath, ['stash', 'list']),\n // 6: working tree status\n git(repositoryPath, ['status', '--porcelain']),\n // 7: diff stats (uncommitted)\n git(repositoryPath, ['diff', '--shortstat']),\n ]);\n\n const val = (i: number) => (results[i].status === 'fulfilled' ? results[i].value : '');\n\n // Parse commits\n const commits: GitLogEntry[] = val(0)\n .split('\\n')\n .filter(Boolean)\n .map((line: string) => {\n const [hash, shortHash, subject, author, relativeDate] = line.split('\\0');\n return { hash, shortHash, subject, author, relativeDate };\n });\n\n const currentBranch = val(1);\n if (commits.length > 0 && currentBranch) {\n commits[0].branch = currentBranch;\n }\n\n // Parse branches\n const branches: GitBranchInfo[] = val(2)\n .split('\\n')\n .filter(Boolean)\n .slice(0, 10)\n .map((line: string) => {\n const isCurrent = line.startsWith('*');\n const clean = isCurrent ? line.slice(1) : line;\n const [name, lastCommitDate] = clean.split('\\0');\n return { name: name.trim(), isCurrent, lastCommitDate: lastCommitDate?.trim() ?? '' };\n });\n\n // Parse remotes (dedup fetch/push)\n const remoteMap = new Map<string, string>();\n val(3)\n .split('\\n')\n .filter(Boolean)\n .forEach((line: string) => {\n const match = line.match(/^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)/);\n if (match) {\n // Strip credentials/tokens from URL before sending to client\n const sanitized = match[2].replace(/\\/\\/[^@]+@/, '//').replace(/x-access-token:[^@]+@/, '');\n remoteMap.set(match[1], sanitized);\n }\n });\n const remotes: GitRemoteInfo[] = Array.from(remoteMap, ([name, url]) => ({ name, url }));\n\n // Parse tags (top 5)\n const tags = val(4).split('\\n').filter(Boolean).slice(0, 5);\n\n // Stash count\n const stashCount = val(5).split('\\n').filter(Boolean).length;\n\n // Working tree status\n const statusLines = val(6).split('\\n').filter(Boolean);\n const workingTree: GitWorkingTreeStatus = { staged: 0, modified: 0, untracked: 0 };\n for (const line of statusLines) {\n const x = line[0];\n const y = line[1];\n if (x === '?' && y === '?') workingTree.untracked++;\n else if (x !== ' ' && x !== '?') workingTree.staged++;\n if (y !== ' ' && y !== '?') workingTree.modified++;\n }\n\n // Diff stats\n let diffStats: GitDiffStats | null = null;\n const diffLine = val(7);\n if (diffLine) {\n const files = diffLine.match(/(\\d+) file/);\n const ins = diffLine.match(/(\\d+) insertion/);\n const del = diffLine.match(/(\\d+) deletion/);\n diffStats = {\n filesChanged: files ? parseInt(files[1], 10) : 0,\n insertions: ins ? parseInt(ins[1], 10) : 0,\n deletions: del ? parseInt(del[1], 10) : 0,\n };\n }\n\n return { commits, branches, remotes, tags, stashCount, currentBranch, diffStats, workingTree };\n}\n\n// Keep backward compat\nexport async function getGitLog(\n repositoryPath: string,\n limit = 10\n): Promise<{ entries: GitLogEntry[]; error?: string }> {\n const info = await getGitRepoInfo(repositoryPath, limit);\n return { entries: info.commits, error: info.error };\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE9'\nexport {openIde as '40878a5c2b682e29562c8791dfc25ed9aef19a81c6'} from 'ACTIONS_MODULE10'\nexport {openShell as '4036b65d6919cb5b837c12052900f291047f441c36'} from 'ACTIONS_MODULE11'\nexport {openFolder as '4068261a4977d7b089504f2e2aee221a19f160ba37'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '409f10d5aa44132ca6af28d7fe3770e62669057fd0'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '00d367b46aed27695f8f3695cd39fbdb56f8335e91'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00fff489343a59b3b724e92d94b002ec1f299913ac'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4079d90fe48f4aa66a1611946782347e16ed8a93ee'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '404e501db65c8e9bdd1917091b2842fdc20546fd63'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40465f50d58004fdaa88c885fe6230ca0bdcd84f9f'} from 'ACTIONS_MODULE21'\nexport {startFeature as '408c6fd8467f047dd4c7641e2d2e3c400a4c76661a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40ff87b72726bd521f89733cd544e1ec959d04672e'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '406a6202e7aa1f12a0b44ec52473d66df2f3ff621b'} from 'ACTIONS_MODULE24'\nexport {addRepository as '400c75c1b4436243d60d7220bab0a7a02c04a4353a'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402a84bafc66bd852952f74a1c9d9c34234b6a27ed'} from 'ACTIONS_MODULE26'\nexport {getGitRepoInfo as '6048a1fc56e12ca4bb3a044cb500436901333614bd'} from 'ACTIONS_MODULE27'\n"],"names":["execFileAsync","git","cwd","args","stdout","timeout","trim","getGitRepoInfo","repositoryPath","commitLimit","empty","commits","branches","remotes","tags","stashCount","currentBranch","diffStats","workingTree","staged","modified","untracked","error","results","Promise","allSettled","val","i","status","value","split","filter","Boolean","map","line","hash","shortHash","subject","author","relativeDate","length","branch","slice","isCurrent","startsWith","clean","name","lastCommitDate","remoteMap","Map","forEach","match","sanitized","replace","set","Array","from","url","statusLines","x","y","diffLine","files","ins","del","filesChanged","parseInt","insertions","deletions","getGitLog","limit","info","entries"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- module.exports=[21447,19720,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(){let a=(0,c.resolve)("LoadSettingsUseCase"),{workflow:b}=await a.execute();return{approvalGates:{allowPrd:b.approvalGateDefaults.allowPrd,allowPlan:b.approvalGateDefaults.allowPlan,allowMerge:b.approvalGateDefaults.allowMerge},push:b.approvalGateDefaults.pushOnImplementationComplete,openPr:b.openPrOnImplementationComplete,ciWatchEnabled:b.ciWatchEnabled,enableEvidence:b.enableEvidence,commitEvidence:b.commitEvidence,fast:b.defaultFastMode}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00d36307ade90b40c6208aa26adc2cb9fb94195b63",null),a.s(["getWorkflowDefaults",0,e],21447);let f=new Set(["ADMIN","MAINTAIN","WRITE"]);async function g(a){try{let b=(0,c.resolve)("IGitHubRepositoryService"),d=await b.getViewerPermission(a);return{canPushDirectly:f.has(d)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b",null),a.s(["getViewerPermission",0,g],19720)},77605,a=>{"use strict";var b=a.i(2211),c=a.i(96380);async function d(a){let{description:b,repositoryPath:d,attachments:e,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t}=a;if(!b?.trim())return{error:"description is required"};if(!d?.trim())return{error:"repositoryPath is required"};let u=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
2
-
3
- ${c}`}(b,e),v={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,c.resolve)("CreateFeatureUseCase"),{feature:e,shouldSpawn:g}=await a.createRecord({userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{}});return a.initializeAndSpawn(e,{userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,a.i(50961).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"40f3fc4b239fde1a5cdae27a263b607dbdb1e34710",null),a.s(["createFeature",0,d],77605)},37644,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(33841),i=a.i(46646),j=a.i(68670),k=a.i(85321),l=a.i(84095),m=a.i(56799),n=a.i(80496),o=a.i(93225),p=a.i(94691),q=a.i(41872),r=a.i(9959),s=a.i(79124),t=a.i(29207),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(21447),D=a.i(19720),E=a.i(77605);a.s([],67047),a.i(67047),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00d36307ade90b40c6208aa26adc2cb9fb94195b63",()=>C.getWorkflowDefaults,"00d367b46aed27695f8f3695cd39fbdb56f8335e91",()=>r.checkAgentAuth,"00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1",()=>q.isAgentSetupComplete,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"00fff489343a59b3b724e92d94b002ec1f299913ac",()=>s.checkToolStatus,"400c75c1b4436243d60d7220bab0a7a02c04a4353a",()=>A.addRepository,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>j.stopDeployment,"402a84bafc66bd852952f74a1c9d9c34234b6a27ed",()=>B.deleteRepository,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"4036b65d6919cb5b837c12052900f291047f441c36",()=>m.openShell,"40465f50d58004fdaa88c885fe6230ca0bdcd84f9f",()=>w.resumeFeature,"404e501db65c8e9bdd1917091b2842fdc20546fd63",()=>u.archiveFeature,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>h.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>k.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>i.deployRepository,"405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b",()=>D.getViewerPermission,"4068261a4977d7b089504f2e2aee221a19f160ba37",()=>n.openFolder,"406a6202e7aa1f12a0b44ec52473d66df2f3ff621b",()=>z.unarchiveFeature,"4079d90fe48f4aa66a1611946782347e16ed8a93ee",()=>t.getFeatureMetadata,"40878a5c2b682e29562c8791dfc25ed9aef19a81c6",()=>l.openIde,"408c6fd8467f047dd4c7641e2d2e3c400a4c76661a",()=>x.startFeature,"409f10d5aa44132ca6af28d7fe3770e62669057fd0",()=>o.syncRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>p.getDeploymentLogs,"40f3fc4b239fde1a5cdae27a263b607dbdb1e34710",()=>E.createFeature,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"40ff87b72726bd521f89733cd544e1ec959d04672e",()=>y.stopFeature,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel,"78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52",()=>v.deleteFeature],37644)}];
4
-
5
- //# sourceMappingURL=src_presentation_web_0qys821._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/app/actions/create-feature.ts","../../../../../../../src/presentation/web/app/actions/compose-user-input.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shipit-ai/core/application/use-cases/settings/load-settings.use-case';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const loadSettings = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const settings = await loadSettings.execute();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shipit-ai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateFeatureUseCase } from '@shipit-ai/core/application/use-cases/features/create/create-feature.use-case';\nimport type { Feature } from '@shipit-ai/core/domain/generated/output';\nimport { composeUserInput } from './compose-user-input';\n\ninterface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\ninterface ApprovalGates {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n}\n\ninterface CreateFeatureInput {\n description: string;\n repositoryPath: string;\n attachments?: Attachment[];\n sessionId?: string;\n approvalGates?: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge?: boolean;\n };\n push?: boolean;\n openPr?: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast?: boolean;\n /** When true, create the feature in pending state (no agent spawned). */\n pending?: boolean;\n /** Fork repo and create PR to upstream at merge time. */\n forkAndPr?: boolean;\n /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */\n commitSpecs?: boolean;\n /** Enable CI watch/fix loop after push. */\n ciWatchEnabled?: boolean;\n /** Enable evidence collection after implementation. */\n enableEvidence?: boolean;\n /** Commit evidence to PR. */\n commitEvidence?: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model identifier for this feature run */\n model?: string;\n /** Sync main from remote before creating the feature branch (default: true). */\n rebaseBeforeBranch?: boolean;\n}\n\nexport async function createFeature(\n input: CreateFeatureInput\n): Promise<{ feature?: Feature; error?: string }> {\n const {\n description,\n repositoryPath,\n attachments,\n sessionId,\n approvalGates,\n push,\n openPr,\n parentId,\n fast,\n pending,\n forkAndPr,\n commitSpecs,\n ciWatchEnabled,\n enableEvidence,\n commitEvidence,\n agentType,\n model,\n rebaseBeforeBranch,\n } = input;\n\n if (!description?.trim()) {\n return { error: 'description is required' };\n }\n\n if (!repositoryPath?.trim()) {\n return { error: 'repositoryPath is required' };\n }\n\n const userInput = composeUserInput(description, attachments);\n const gates: ApprovalGates = {\n allowPrd: approvalGates?.allowPrd ?? false,\n allowPlan: approvalGates?.allowPlan ?? false,\n allowMerge: approvalGates?.allowMerge ?? false,\n };\n\n try {\n const createFeatureUseCase = resolve<CreateFeatureUseCase>('CreateFeatureUseCase');\n\n // Phase 1 (fast): create DB record with real UUID — returns immediately\n const { feature, shouldSpawn } = await createFeatureUseCase.createRecord({\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n description,\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n });\n\n // Phase 2 (background): metadata generation, worktree, spec, agent spawn\n // Fire-and-forget — the UI gets the real feature ID immediately\n createFeatureUseCase\n .initializeAndSpawn(\n feature,\n {\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n },\n shouldSpawn\n )\n .catch((err: unknown) => {\n // eslint-disable-next-line no-console\n console.error('[createFeature] initializeAndSpawn failed:', err);\n });\n\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create feature';\n return { error: message };\n }\n}\n","interface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\nexport function composeUserInput(\n description: string,\n attachments: Attachment[] | undefined\n): string {\n if (!attachments || attachments.length === 0) {\n return description;\n }\n\n const refs = attachments\n .map((a) => (a.notes?.trim() ? `@${a.path} [Note: ${a.notes.trim()}]` : `@${a.path}`))\n .join(' ');\n return `${description}\\n\\n${refs}`;\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE9'\nexport {openIde as '40878a5c2b682e29562c8791dfc25ed9aef19a81c6'} from 'ACTIONS_MODULE10'\nexport {openShell as '4036b65d6919cb5b837c12052900f291047f441c36'} from 'ACTIONS_MODULE11'\nexport {openFolder as '4068261a4977d7b089504f2e2aee221a19f160ba37'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '409f10d5aa44132ca6af28d7fe3770e62669057fd0'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '00d367b46aed27695f8f3695cd39fbdb56f8335e91'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00fff489343a59b3b724e92d94b002ec1f299913ac'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4079d90fe48f4aa66a1611946782347e16ed8a93ee'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '404e501db65c8e9bdd1917091b2842fdc20546fd63'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40465f50d58004fdaa88c885fe6230ca0bdcd84f9f'} from 'ACTIONS_MODULE21'\nexport {startFeature as '408c6fd8467f047dd4c7641e2d2e3c400a4c76661a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40ff87b72726bd521f89733cd544e1ec959d04672e'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '406a6202e7aa1f12a0b44ec52473d66df2f3ff621b'} from 'ACTIONS_MODULE24'\nexport {addRepository as '400c75c1b4436243d60d7220bab0a7a02c04a4353a'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402a84bafc66bd852952f74a1c9d9c34234b6a27ed'} from 'ACTIONS_MODULE26'\nexport {getWorkflowDefaults as '00d36307ade90b40c6208aa26adc2cb9fb94195b63'} from 'ACTIONS_MODULE27'\nexport {getViewerPermission as '405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b'} from 'ACTIONS_MODULE28'\nexport {createFeature as '40f3fc4b239fde1a5cdae27a263b607dbdb1e34710'} from 'ACTIONS_MODULE29'\nexport {getViewerPermission as '405ad389f6e6b6f080783ee44c34b5e0d29c91fb4b'} from 'ACTIONS_MODULE28'\n"],"names":["getWorkflowDefaults","loadSettings","settings","execute","workflow","approvalGates","allowPrd","approvalGateDefaults","allowPlan","allowMerge","push","pushOnImplementationComplete","openPr","openPrOnImplementationComplete","ciWatchEnabled","enableEvidence","commitEvidence","fast","defaultFastMode","composeUserInput","description","attachments","length","refs","map","a","notes","trim","path","join"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[94691,a=>{"use strict";var b=a.i(2211),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(50961).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"40bb97740b020ec3aac93a67017c6f51098db11635",null),a.s(["getDeploymentLogs",0,d])},33841,46646,68670,85321,a=>{"use strict";var b=a.i(2211),c=a.i(2157),d=a.i(96380);a.i(1442);let e=()=>void 0;function f(a){let b=!!process.env.DEBUG;return{info:b?(...b)=>console.info(a,...b):e,debug:b?(...b)=>console.debug(a,...b):e,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}var g=a.i(29918),h=a.i(81719),i=a.i(50227);function j(a){try{let b=(0,c.realpathSync)((0,i.resolve)(a)).replace(/\\/g,"/"),d=(0,c.realpathSync)((0,i.resolve)("/home/runner/work/shipit/shipit/src/presentation/web")).replace(/\\/g,"/");return b===d}catch{return!1}}var k=a.i(50961);let l=f("[deployFeature]");async function m(a){if(l.info(`called — featureId="${a}"`),!a?.trim())return l.warn("rejected — featureId is empty"),{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return l.warn(`feature not found in repository: "${a}"`),{success:!1,error:`Feature not found: ${a}`};l.info(`feature found — repositoryPath="${e.repositoryPath}", branch="${e.branch}"`);let f=(0,g.computeWorktreePath)(e.repositoryPath,e.branch);if(l.info(`computed worktreePath="${f}"`),!(0,c.existsSync)(f))return l.warn(`worktree path does not exist on disk: "${f}"`),{success:!1,error:`Worktree path does not exist: ${f}`};if(j(e.repositoryPath))return l.warn("rejected — feature belongs to the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for features of the repository ShipIT is running from"};return l.info("worktree path exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,f,"feature"),l.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy feature";return l.error(`error: ${a}`,b),{success:!1,error:a}}}(0,k.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",null),a.s(["deployFeature",0,m],33841);let n=f("[deployRepository]");async function o(a){if(n.info(`called — repositoryPath="${a}"`),!a||!(0,i.isAbsolute)(a))return n.warn("rejected — not an absolute path"),{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return n.warn(`directory does not exist: "${a}"`),{success:!1,error:`Directory does not exist: ${a}`};if(j(a))return n.warn("rejected — target is the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for the repository ShipIT is running from"};return n.info("directory exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,a,"repository"),n.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy repository";return n.error(`error: ${a}`,b),{success:!1,error:a}}}async function p(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function q(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,k.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40533ac83f958cdde92d7057347655c184070ecc0b",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"405210a4b68113bdc700c2cd3088430f37623e3b23",null),a.s(["getDeploymentStatus",0,q],85321)},14937,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(94691),i=a.i(33841),j=a.i(46646),k=a.i(68670),l=a.i(85321);a.s([],96302),a.i(96302),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>k.stopDeployment,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>i.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>l.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>j.deployRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>h.getDeploymentLogs,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel],14937)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_0q~dt0o._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/app/actions/deploy-feature.ts","../../../../../../../packages/core/src/infrastructure/services/deployment/deployment-logger.ts","../../../../../../../src/presentation/web/lib/is-same-shipit-ai-instance.ts","../../../../../../../src/presentation/web/app/actions/deploy-repository.ts","../../../../../../../src/presentation/web/app/actions/stop-deployment.ts","../../../../../../../src/presentation/web/app/actions/get-deployment-status.ts","../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n LogEntry,\n} from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentLogs(targetId: string): Promise<LogEntry[] | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getLogs(targetId);\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger, computeWorktreePath } from '@/lib/core-utils';\nimport type { IFeatureRepository } from '@shipit-ai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shipit-ai/core/domain/generated/output';\nimport { isSameShipitAiInstance } from '@/lib/is-same-shipit-ai-instance';\n\nconst log = createDeploymentLogger('[deployFeature]');\n\nexport async function deployFeature(\n featureId: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — featureId=\"${featureId}\"`);\n\n if (!featureId?.trim()) {\n log.warn('rejected — featureId is empty');\n return { success: false, error: 'featureId is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n log.warn(`feature not found in repository: \"${featureId}\"`);\n return { success: false, error: `Feature not found: ${featureId}` };\n }\n\n log.info(\n `feature found — repositoryPath=\"${feature.repositoryPath}\", branch=\"${feature.branch}\"`\n );\n\n const worktreePath = computeWorktreePath(feature.repositoryPath, feature.branch);\n log.info(`computed worktreePath=\"${worktreePath}\"`);\n\n if (!existsSync(worktreePath)) {\n log.warn(`worktree path does not exist on disk: \"${worktreePath}\"`);\n return { success: false, error: `Worktree path does not exist: ${worktreePath}` };\n }\n\n if (isSameShipitAiInstance(feature.repositoryPath)) {\n log.warn('rejected — feature belongs to the running ShipIT instance');\n return {\n success: false,\n error: 'Cannot start a dev server for features of the repository ShipIT is running from',\n };\n }\n\n log.info('worktree path exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(featureId, worktreePath, 'feature');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy feature';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","/* eslint-disable no-console */\n\n/**\n * Debug-gated logger for deployment services.\n *\n * - `info` and `debug` only emit when `process.env.DEBUG` is set.\n * - `warn` and `error` always emit (they indicate real problems).\n */\n\nconst noop = () => undefined;\n\nexport function createDeploymentLogger(prefix: string) {\n const isDebug = !!process.env.DEBUG;\n\n return {\n info: isDebug ? (...args: unknown[]) => console.info(prefix, ...args) : noop,\n debug: isDebug ? (...args: unknown[]) => console.debug(prefix, ...args) : noop,\n warn: (...args: unknown[]) => console.warn(prefix, ...args),\n error: (...args: unknown[]) => console.error(prefix, ...args),\n };\n}\n","import { realpathSync } from 'node:fs';\nimport { resolve } from 'node:path';\n\n/**\n * Check if a target path is the same directory (or a worktree of) the\n * currently running shipit-ai instance. Starting a dev server there would spawn\n * another shipit-ai instance that conflicts with the shared ~/.shipit-ai/data DB.\n */\nexport function isSameShipitAiInstance(targetPath: string): boolean {\n const instancePath = process.env.NEXT_PUBLIC_SHIPIT_AI_INSTANCE_PATH ?? process.cwd();\n\n try {\n const normalizedTarget = realpathSync(resolve(targetPath)).replace(/\\\\/g, '/');\n const normalizedInstance = realpathSync(resolve(instancePath)).replace(/\\\\/g, '/');\n return normalizedTarget === normalizedInstance;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { isAbsolute } from 'node:path';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger } from '@/lib/core-utils';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shipit-ai/core/domain/generated/output';\nimport { isSameShipitAiInstance } from '@/lib/is-same-shipit-ai-instance';\n\nconst log = createDeploymentLogger('[deployRepository]');\n\nexport async function deployRepository(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — repositoryPath=\"${repositoryPath}\"`);\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n log.warn('rejected — not an absolute path');\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n log.warn(`directory does not exist: \"${repositoryPath}\"`);\n return { success: false, error: `Directory does not exist: ${repositoryPath}` };\n }\n\n if (isSameShipitAiInstance(repositoryPath)) {\n log.warn('rejected — target is the running ShipIT instance');\n return {\n success: false,\n error: 'Cannot start a dev server for the repository ShipIT is running from',\n };\n }\n\n log.info('directory exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(repositoryPath, repositoryPath, 'repository');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy repository';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function stopDeployment(\n targetId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!targetId?.trim()) {\n return { success: false, error: 'targetId is required' };\n }\n\n try {\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n await deploymentService.stop(targetId);\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to stop deployment';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n DeploymentStatus,\n} from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentStatus(targetId: string): Promise<DeploymentStatus | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getStatus(targetId);\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE10'\n"],"names":["getDeploymentLogs","targetId","trim","deploymentService","getLogs","noop","undefined","createDeploymentLogger","prefix","isDebug","process","env","DEBUG","info","args","console","debug","warn","error"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[94691,a=>{"use strict";var b=a.i(2211),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(50961).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"40bb97740b020ec3aac93a67017c6f51098db11635",null),a.s(["getDeploymentLogs",0,d])},33841,46646,68670,85321,a=>{"use strict";var b=a.i(2211),c=a.i(2157),d=a.i(96380);a.i(1442);let e=()=>void 0;function f(a){let b=!!process.env.DEBUG;return{info:b?(...b)=>console.info(a,...b):e,debug:b?(...b)=>console.debug(a,...b):e,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}var g=a.i(29918),h=a.i(81719),i=a.i(50227);function j(a){try{let b=(0,c.realpathSync)((0,i.resolve)(a)).replace(/\\/g,"/"),d=(0,c.realpathSync)((0,i.resolve)("/home/runner/work/shipit/shipit/src/presentation/web")).replace(/\\/g,"/");return b===d}catch{return!1}}var k=a.i(50961);let l=f("[deployFeature]");async function m(a){if(l.info(`called — featureId="${a}"`),!a?.trim())return l.warn("rejected — featureId is empty"),{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return l.warn(`feature not found in repository: "${a}"`),{success:!1,error:`Feature not found: ${a}`};l.info(`feature found — repositoryPath="${e.repositoryPath}", branch="${e.branch}"`);let f=(0,g.computeWorktreePath)(e.repositoryPath,e.branch);if(l.info(`computed worktreePath="${f}"`),!(0,c.existsSync)(f))return l.warn(`worktree path does not exist on disk: "${f}"`),{success:!1,error:`Worktree path does not exist: ${f}`};if(j(e.repositoryPath))return l.warn("rejected — feature belongs to the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for features of the repository ShipIT is running from"};return l.info("worktree path exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,f,"feature"),l.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy feature";return l.error(`error: ${a}`,b),{success:!1,error:a}}}(0,k.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",null),a.s(["deployFeature",0,m],33841);let n=f("[deployRepository]");async function o(a){if(n.info(`called — repositoryPath="${a}"`),!a||!(0,i.isAbsolute)(a))return n.warn("rejected — not an absolute path"),{success:!1,error:"repositoryPath must be an absolute path"};try{if(!(0,c.existsSync)(a))return n.warn(`directory does not exist: "${a}"`),{success:!1,error:`Directory does not exist: ${a}`};if(j(a))return n.warn("rejected — target is the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for the repository ShipIT is running from"};return n.info("directory exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,a,"repository"),n.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy repository";return n.error(`error: ${a}`,b),{success:!1,error:a}}}async function p(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function q(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,k.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40533ac83f958cdde92d7057347655c184070ecc0b",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"405210a4b68113bdc700c2cd3088430f37623e3b23",null),a.s(["getDeploymentStatus",0,q],85321)},21171,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(94691),i=a.i(33841),j=a.i(46646),k=a.i(68670),l=a.i(85321);a.s([],22977),a.i(22977),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>k.stopDeployment,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>i.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>l.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>j.deployRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>h.getDeploymentLogs,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel],21171)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_11jrkxt._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/app/actions/deploy-feature.ts","../../../../../../../packages/core/src/infrastructure/services/deployment/deployment-logger.ts","../../../../../../../src/presentation/web/lib/is-same-shipit-ai-instance.ts","../../../../../../../src/presentation/web/app/actions/deploy-repository.ts","../../../../../../../src/presentation/web/app/actions/stop-deployment.ts","../../../../../../../src/presentation/web/app/actions/get-deployment-status.ts","../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n LogEntry,\n} from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentLogs(targetId: string): Promise<LogEntry[] | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getLogs(targetId);\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger, computeWorktreePath } from '@/lib/core-utils';\nimport type { IFeatureRepository } from '@shipit-ai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shipit-ai/core/domain/generated/output';\nimport { isSameShipitAiInstance } from '@/lib/is-same-shipit-ai-instance';\n\nconst log = createDeploymentLogger('[deployFeature]');\n\nexport async function deployFeature(\n featureId: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — featureId=\"${featureId}\"`);\n\n if (!featureId?.trim()) {\n log.warn('rejected — featureId is empty');\n return { success: false, error: 'featureId is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n log.warn(`feature not found in repository: \"${featureId}\"`);\n return { success: false, error: `Feature not found: ${featureId}` };\n }\n\n log.info(\n `feature found — repositoryPath=\"${feature.repositoryPath}\", branch=\"${feature.branch}\"`\n );\n\n const worktreePath = computeWorktreePath(feature.repositoryPath, feature.branch);\n log.info(`computed worktreePath=\"${worktreePath}\"`);\n\n if (!existsSync(worktreePath)) {\n log.warn(`worktree path does not exist on disk: \"${worktreePath}\"`);\n return { success: false, error: `Worktree path does not exist: ${worktreePath}` };\n }\n\n if (isSameShipitAiInstance(feature.repositoryPath)) {\n log.warn('rejected — feature belongs to the running ShipIT instance');\n return {\n success: false,\n error: 'Cannot start a dev server for features of the repository ShipIT is running from',\n };\n }\n\n log.info('worktree path exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(featureId, worktreePath, 'feature');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy feature';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","/* eslint-disable no-console */\n\n/**\n * Debug-gated logger for deployment services.\n *\n * - `info` and `debug` only emit when `process.env.DEBUG` is set.\n * - `warn` and `error` always emit (they indicate real problems).\n */\n\nconst noop = () => undefined;\n\nexport function createDeploymentLogger(prefix: string) {\n const isDebug = !!process.env.DEBUG;\n\n return {\n info: isDebug ? (...args: unknown[]) => console.info(prefix, ...args) : noop,\n debug: isDebug ? (...args: unknown[]) => console.debug(prefix, ...args) : noop,\n warn: (...args: unknown[]) => console.warn(prefix, ...args),\n error: (...args: unknown[]) => console.error(prefix, ...args),\n };\n}\n","import { realpathSync } from 'node:fs';\nimport { resolve } from 'node:path';\n\n/**\n * Check if a target path is the same directory (or a worktree of) the\n * currently running shipit-ai instance. Starting a dev server there would spawn\n * another shipit-ai instance that conflicts with the shared ~/.shipit-ai/data DB.\n */\nexport function isSameShipitAiInstance(targetPath: string): boolean {\n const instancePath = process.env.NEXT_PUBLIC_SHIPIT_AI_INSTANCE_PATH ?? process.cwd();\n\n try {\n const normalizedTarget = realpathSync(resolve(targetPath)).replace(/\\\\/g, '/');\n const normalizedInstance = realpathSync(resolve(instancePath)).replace(/\\\\/g, '/');\n return normalizedTarget === normalizedInstance;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { isAbsolute } from 'node:path';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger } from '@/lib/core-utils';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shipit-ai/core/domain/generated/output';\nimport { isSameShipitAiInstance } from '@/lib/is-same-shipit-ai-instance';\n\nconst log = createDeploymentLogger('[deployRepository]');\n\nexport async function deployRepository(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — repositoryPath=\"${repositoryPath}\"`);\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n log.warn('rejected — not an absolute path');\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n log.warn(`directory does not exist: \"${repositoryPath}\"`);\n return { success: false, error: `Directory does not exist: ${repositoryPath}` };\n }\n\n if (isSameShipitAiInstance(repositoryPath)) {\n log.warn('rejected — target is the running ShipIT instance');\n return {\n success: false,\n error: 'Cannot start a dev server for the repository ShipIT is running from',\n };\n }\n\n log.info('directory exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(repositoryPath, repositoryPath, 'repository');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy repository';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IDeploymentService } from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function stopDeployment(\n targetId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!targetId?.trim()) {\n return { success: false, error: 'targetId is required' };\n }\n\n try {\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n await deploymentService.stop(targetId);\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to stop deployment';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n DeploymentStatus,\n} from '@shipit-ai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentStatus(targetId: string): Promise<DeploymentStatus | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getStatus(targetId);\n}\n","export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE10'\n"],"names":["getDeploymentLogs","targetId","trim","deploymentService","getLogs","noop","undefined","createDeploymentLogger","prefix","isDebug","process","env","DEBUG","info","args","console","debug","warn","error"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[58863,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(33841),i=a.i(46646),j=a.i(68670),k=a.i(85321),l=a.i(84095),m=a.i(56799),n=a.i(80496),o=a.i(93225),p=a.i(94691),q=a.i(41872),r=a.i(9959),s=a.i(79124),t=a.i(29207),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353);a.s([],46656),a.i(46656),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00d367b46aed27695f8f3695cd39fbdb56f8335e91",()=>r.checkAgentAuth,"00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1",()=>q.isAgentSetupComplete,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"00fff489343a59b3b724e92d94b002ec1f299913ac",()=>s.checkToolStatus,"400c75c1b4436243d60d7220bab0a7a02c04a4353a",()=>A.addRepository,"4018ee45ae6584a9338640808b7ed0af41d9b94d0a",()=>j.stopDeployment,"402a84bafc66bd852952f74a1c9d9c34234b6a27ed",()=>B.deleteRepository,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"4036b65d6919cb5b837c12052900f291047f441c36",()=>m.openShell,"40465f50d58004fdaa88c885fe6230ca0bdcd84f9f",()=>w.resumeFeature,"404e501db65c8e9bdd1917091b2842fdc20546fd63",()=>u.archiveFeature,"404f68e2c3d0c0bb3454353f4555e84ddb155b06e7",()=>h.deployFeature,"405210a4b68113bdc700c2cd3088430f37623e3b23",()=>k.getDeploymentStatus,"40533ac83f958cdde92d7057347655c184070ecc0b",()=>i.deployRepository,"4068261a4977d7b089504f2e2aee221a19f160ba37",()=>n.openFolder,"406a6202e7aa1f12a0b44ec52473d66df2f3ff621b",()=>z.unarchiveFeature,"4079d90fe48f4aa66a1611946782347e16ed8a93ee",()=>t.getFeatureMetadata,"40878a5c2b682e29562c8791dfc25ed9aef19a81c6",()=>l.openIde,"408c6fd8467f047dd4c7641e2d2e3c400a4c76661a",()=>x.startFeature,"409f10d5aa44132ca6af28d7fe3770e62669057fd0",()=>o.syncRepository,"40bb97740b020ec3aac93a67017c6f51098db11635",()=>p.getDeploymentLogs,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"40ff87b72726bd521f89733cd544e1ec959d04672e",()=>y.stopFeature,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel,"78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52",()=>v.deleteFeature],58863)}];
2
-
3
- //# sourceMappingURL=src_presentation_web__next-internal_server_app_%28dashboard%29_page_actions_1199d3x.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '404f68e2c3d0c0bb3454353f4555e84ddb155b06e7'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '40533ac83f958cdde92d7057347655c184070ecc0b'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4018ee45ae6584a9338640808b7ed0af41d9b94d0a'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '405210a4b68113bdc700c2cd3088430f37623e3b23'} from 'ACTIONS_MODULE9'\nexport {openIde as '40878a5c2b682e29562c8791dfc25ed9aef19a81c6'} from 'ACTIONS_MODULE10'\nexport {openShell as '4036b65d6919cb5b837c12052900f291047f441c36'} from 'ACTIONS_MODULE11'\nexport {openFolder as '4068261a4977d7b089504f2e2aee221a19f160ba37'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '409f10d5aa44132ca6af28d7fe3770e62669057fd0'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '40bb97740b020ec3aac93a67017c6f51098db11635'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00dc5ac4b7d5aba4cfa811ec7fa7ae718278f754a1'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '00d367b46aed27695f8f3695cd39fbdb56f8335e91'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00fff489343a59b3b724e92d94b002ec1f299913ac'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4079d90fe48f4aa66a1611946782347e16ed8a93ee'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '404e501db65c8e9bdd1917091b2842fdc20546fd63'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '78ef1f63c7a6445be41b981b2217cd5fefaa0fcc52'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '40465f50d58004fdaa88c885fe6230ca0bdcd84f9f'} from 'ACTIONS_MODULE21'\nexport {startFeature as '408c6fd8467f047dd4c7641e2d2e3c400a4c76661a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40ff87b72726bd521f89733cd544e1ec959d04672e'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '406a6202e7aa1f12a0b44ec52473d66df2f3ff621b'} from 'ACTIONS_MODULE24'\nexport {addRepository as '400c75c1b4436243d60d7220bab0a7a02c04a4353a'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402a84bafc66bd852952f74a1c9d9c34234b6a27ed'} from 'ACTIONS_MODULE26'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[35539,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324);a.s([],71836),a.i(71836),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel],35539)}];
2
-
3
- //# sourceMappingURL=src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/_not-found/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[8197,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324);a.s([],64220),a.i(64220),a.s(["0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2",()=>b.getAllAgentModels,"00b329da570a987057eee3d61f43d20faee48457b8",()=>f.listGitHubOrganizations,"00de132693ba9cee5c2b99507091b0b246a3b78566",()=>d.pickFolder,"402fbf6b41a38360e5499cde4512f794b498043dba",()=>g.importGitHubRepository,"40fd40254269dec7c71c633c903f1e53d892b193e4",()=>e.listGitHubRepositories,"60d24cf8beb5a2fd8befdc7bbe902ca266432128e8",()=>c.updateAgentAndModel],8197)}];
2
-
3
- //# sourceMappingURL=src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/version/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '0028b9fc2e0d3eaa64d16864c51267bc47cd8353f2'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d24cf8beb5a2fd8befdc7bbe902ca266432128e8'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00de132693ba9cee5c2b99507091b0b246a3b78566'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40fd40254269dec7c71c633c903f1e53d892b193e4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00b329da570a987057eee3d61f43d20faee48457b8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '402fbf6b41a38360e5499cde4512f794b498043dba'} from 'ACTIONS_MODULE5'\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[86561,8275,75854,85653,a=>{"use strict";var b=a.i(2211),c=a.i(2157),d=a.i(50227),e=a.i(96380);a.i(1442);var f=a.i(83771),g=a.i(50961);async function h(){try{let b=(0,e.resolve)("LoadSettingsUseCase"),g=await b.execute(),h=(0,f.getShipitAiHomeDir)(),i="Unknown";try{var a;let b=(0,d.join)(h,"data");i=(a=(0,c.statSync)(b).size)<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`}catch{}return{settings:g,shipitAiHome:h,dbFileSize:i}}catch(a){return{error:a instanceof Error?a.message:"Failed to load settings"}}}async function i(){try{let a=(0,e.resolve)("IToolInstallerService");return await a.listAvailableTerminals()}catch{return[{id:"system",name:"System Terminal",available:!0}]}}async function j(){try{let a=(0,e.resolve)("IEnvironmentDetectorService");return await a.listAvailableEditors()}catch{return[{id:"vscode",name:"VS Code",available:!0},{id:"cursor",name:"Cursor",available:!0},{id:"windsurf",name:"Windsurf",available:!0},{id:"zed",name:"Zed",available:!0},{id:"antigravity",name:"Antigravity",available:!0}]}}async function k(){try{let a=(0,e.resolve)("IEnvironmentDetectorService");return await a.listAvailableShells()}catch{return[{id:"bash",name:"Bash",available:!0},{id:"zsh",name:"Zsh",available:!0},{id:"fish",name:"Fish",available:!0}]}}(0,g.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"00cbfc69bad7993dcf05d256617eb057bfa8c52f46",null),a.s(["loadSettings",0,h],86561),(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"006aca78f91ddb2234ce9b55afbb8c8d88c5771b1b",null),a.s(["getAvailableTerminals",0,i],8275),(0,g.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"0042ca5c1f6159473bf5e29f55e575efce7da88805",null),a.s(["getAvailableEditors",0,j],75854),(0,g.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"00644377b1ec888511b9814fe49d0270f8ef9b9bf3",null),a.s(["getAvailableShells",0,k],85653)}];
2
-
3
- //# sourceMappingURL=src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/load-settings.ts","../../../../../../../src/presentation/web/app/actions/get-available-terminals.ts","../../../../../../../src/presentation/web/app/actions/get-available-editors.ts","../../../../../../../src/presentation/web/app/actions/get-available-shells.ts"],"sourcesContent":["'use server';\n\nimport { statSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { resolve } from '@/lib/server-container';\nimport type { LoadSettingsUseCase } from '@shipit-ai/core/application/use-cases/settings/load-settings.use-case';\nimport { getShipitAiHomeDir } from '@/lib/core-utils';\nimport type { Settings } from '@shipit-ai/core/domain/generated/output';\n\nexport interface LoadSettingsResult {\n settings?: Settings;\n shipitAiHome?: string;\n dbFileSize?: string;\n error?: string;\n}\n\nfunction formatFileSize(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\nexport async function loadSettings(): Promise<LoadSettingsResult> {\n try {\n const useCase = resolve<LoadSettingsUseCase>('LoadSettingsUseCase');\n const settings = await useCase.execute();\n\n const shipitAiHome = getShipitAiHomeDir();\n let dbFileSize = 'Unknown';\n try {\n const dbPath = join(shipitAiHome, 'data');\n const stat = statSync(dbPath);\n dbFileSize = formatFileSize(stat.size);\n } catch {\n // DB file may not exist yet\n }\n\n return { settings, shipitAiHome, dbFileSize };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load settings';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IToolInstallerService } from '@shipit-ai/core/application/ports/output/services/tool-installer.service';\n\nexport interface AvailableTerminal {\n id: string;\n name: string;\n available: boolean;\n}\n\n/**\n * Returns the list of terminal entries from the DI container's IToolInstallerService,\n * filtered to the current platform with availability checks.\n *\n * Using the DI container (not a direct import from tool-metadata) ensures that\n * TOOL_METADATA is read from the correct tools/ directory path — it is loaded once\n * in the Node.js CLI bootstrap context where import.meta.url resolves correctly.\n * Direct imports of tool-metadata from Next.js server action bundles break in\n * standalone production mode because import.meta.url points to the chunk file.\n */\nexport async function getAvailableTerminals(): Promise<AvailableTerminal[]> {\n try {\n const service = resolve<IToolInstallerService>('IToolInstallerService');\n return await service.listAvailableTerminals();\n } catch {\n return [{ id: 'system', name: 'System Terminal', available: true }];\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IEnvironmentDetectorService } from '@shipit-ai/core/application/ports/output/services/environment-detector.service';\n\nexport interface AvailableEditor {\n id: string;\n name: string;\n available: boolean;\n}\n\n/**\n * Returns the list of editor entries from the DI container's IEnvironmentDetectorService,\n * with availability checks based on binary existence on the current system.\n *\n * Using the DI container (not a direct import) ensures the service is resolved\n * in the correct Node.js bootstrap context where tool metadata paths resolve correctly.\n */\nexport async function getAvailableEditors(): Promise<AvailableEditor[]> {\n try {\n const service = resolve<IEnvironmentDetectorService>('IEnvironmentDetectorService');\n return await service.listAvailableEditors();\n } catch {\n return [\n { id: 'vscode', name: 'VS Code', available: true },\n { id: 'cursor', name: 'Cursor', available: true },\n { id: 'windsurf', name: 'Windsurf', available: true },\n { id: 'zed', name: 'Zed', available: true },\n { id: 'antigravity', name: 'Antigravity', available: true },\n ];\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IEnvironmentDetectorService } from '@shipit-ai/core/application/ports/output/services/environment-detector.service';\n\nexport interface AvailableShell {\n id: string;\n name: string;\n available: boolean;\n}\n\n/**\n * Returns the list of shell entries from the DI container's IEnvironmentDetectorService,\n * with availability checks based on binary existence on the current system.\n *\n * Using the DI container (not a direct import) ensures the service is resolved\n * in the correct Node.js bootstrap context where tool metadata paths resolve correctly.\n */\nexport async function getAvailableShells(): Promise<AvailableShell[]> {\n try {\n const service = resolve<IEnvironmentDetectorService>('IEnvironmentDetectorService');\n return await service.listAvailableShells();\n } catch {\n return [\n { id: 'bash', name: 'Bash', available: true },\n { id: 'zsh', name: 'Zsh', available: true },\n { id: 'fish', name: 'Fish', available: true },\n ];\n }\n}\n"],"names":["formatFileSize","bytes","toFixed","loadSettings","useCase","settings","execute","shipitAiHome","dbFileSize","dbPath","stat","size","error","message","Error"],"mappings":"wEAEA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,CAAA,CAAA,MAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBAgBO,eAAeG,IACpB,GAAI,CACF,IAAMC,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAsB,uBACvCC,EAAW,MAAMD,EAAQE,OAAO,GAEhCC,EAAe,CAAA,EAAA,EAAA,kBAAA,AAAkB,IACnCC,EAAa,UACjB,GAAI,OACF,IAAMC,EAAS,CAAA,EAAA,EAAA,IAAA,AAAI,EAACF,EAAc,QAElCC,EAfJ,AAAIP,CADkBA,EAeL,AACeS,CADf,EAfkB,AAelB,EAAA,GACAV,KADA,AAAQ,EAACS,GACWE,IAAI,EAf7B,KAAa,CAAP,AAAO,EAAGV,EAAM,EAAE,CAAC,CACjCA,EAAQ,OAAO,CAAa,CAAA,EAAG,CAACA,CAAX,CAAmB,IAAA,CAAI,CAAEC,OAAO,CAAC,GAAG,GAAG,CAAC,CAC1D,CAAA,EAAG,CAACD,EAAS,MAAD,CAAQ,AAAI,CAAC,CAAEC,OAAO,CAAC,GAAG,GAAG,CAAC,AAc/C,CAAE,KAAM,CAER,CAEA,MAAO,CAAEG,WAAUE,0BAAcC,CAAW,CAC9C,CAAE,MAAOI,EAAgB,CAEvB,MAAO,CAAEA,MADOA,CACAC,YADiBC,MAAQF,EAAMC,OAAO,CAAG,yBACjC,CAC1B,CACF,CCrBO,eAAe,IACpB,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAwB,yBAC/C,OAAO,MAAM,EAAQ,sBAAsB,EAC7C,CAAE,KAAM,CACN,MAAO,CAAC,CAAE,GAAI,SAAU,KAAM,kBAAmB,WAAW,CAAK,EAAE,AACrE,CACF,CCVO,eAAe,IACpB,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAA8B,+BACrD,OAAO,MAAM,EAAQ,oBAAoB,EAC3C,CAAE,KAAM,CACN,MAAO,CACL,CAAE,GAAI,SAAU,KAAM,UAAW,UAAW,EAAK,EACjD,CAAE,GAAI,SAAU,KAAM,SAAU,UAAW,EAAK,EAChD,CAAE,GAAI,WAAY,KAAM,WAAY,UAAW,EAAK,EACpD,CAAE,GAAI,MAAO,KAAM,MAAO,WAAW,CAAK,EAC1Cb,CAAE,GAAI,cAAe,KAAM,cAAe,WAAW,CAAK,EAC3D,AACH,CACF,CCbO,eAAe,IACpB,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAA8B,+BACrD,OAAO,MAAM,EAAQ,mBAAmB,EAC1C,CAAE,KAAM,CACN,MAAO,CACL,CAAE,GAAI,OAAQ,KAAM,OAAQ,WAAW,CAAK,EAC5C,CAAE,GAAI,MAAO,KAAM,MAAO,UAAW,EAAK,EAC1C,CAAE,GAAI,OAAQ,KAAM,OAAQ,UAAW,EAAK,EAC7C,AACH,CACF,iCHPsBG,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,sECDA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,8ECHA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,6ECAA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
@@ -1,5 +0,0 @@
1
- var R=require("./chunks/[turbopack]_runtime.js")("server/middleware.js")
2
- R.c("server/chunks/[externals]__11vad82._.js")
3
- R.c("server/chunks/[root-of-the-server]__13ni_ow._.js")
4
- R.m(55626)
5
- module.exports=R.m(55626).exports
@@ -1,5 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sections": []
5
- }
@@ -1 +0,0 @@
1
- {"version":1,"files":["../../../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@swc/helpers","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/lib/console.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/require-hook.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/package.json","../../../../../node_modules/.pnpm/next@16.2.2_@babel+core@7.29.0_@playwright+test@1.59.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react","../../../../../node_modules/.pnpm/node_modules/@swc/helpers","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../../node_modules/next","../../../../../node_modules/react","../../node_modules/next","./chunks/[externals]__11vad82._.js","./chunks/[root-of-the-server]__13ni_ow._.js","./chunks/[turbopack]_runtime.js"]}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,83843,e=>{"use strict";let a=(0,e.i(3645).default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);e.s(["ChevronsUpDown",0,a],83843)},36479,e=>{"use strict";var a=e.i(96871),t=e.i(16539),s=e.i(33109),r=e.i(60112),o=e.i(96976);let n=(0,o.createServerReference)("4053db8b2141fb41a82d845f9309ef5f1308d7f222",o.callServer,void 0,o.findSourceMapURL,"adoptBranch"),l=(0,o.createServerReference)("409f1720be54074bab61ed2f28d08c92458579aac7",o.callServer,void 0,o.findSourceMapURL,"listBranches");var i=e.i(23925),c=e.i(97667),d=e.i(83843),p=e.i(49228),h=e.i(83428);e.i(1650);var u=e.i(11495),m=e.i(45811),x=e.i(35364),f=e.i(98127),b=e.i(41957),v=e.i(66459),g=e.i(31777);let j=t.forwardRef(({className:e,...t},s)=>(0,a.jsx)("div",{ref:s,className:(0,g.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...t}));j.displayName="Command";let w=t.forwardRef(({className:e,...t},s)=>(0,a.jsxs)("div",{className:"flex items-center border-b px-3",children:[(0,a.jsx)(v.Search,{className:"me-2 h-4 w-4 shrink-0 opacity-50"}),(0,a.jsx)("input",{ref:s,className:(0,g.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));w.displayName="CommandInput";let N=t.forwardRef(({className:e,...t},s)=>(0,a.jsx)("div",{ref:s,className:(0,g.cn)("max-h-[300px] overflow-x-hidden overflow-y-auto",e),...t}));N.displayName="CommandList";let y=t.forwardRef(({className:e,...t},s)=>(0,a.jsx)("div",{ref:s,className:(0,g.cn)("text-muted-foreground py-6 text-center text-sm",e),...t}));y.displayName="CommandEmpty";let C=t.forwardRef(({className:e,...t},s)=>(0,a.jsx)("div",{ref:s,className:(0,g.cn)("text-foreground overflow-hidden p-1",e),...t}));C.displayName="CommandGroup";let S=t.forwardRef(({className:e,selected:t,...s},r)=>(0,a.jsx)("button",{ref:r,type:"button","data-selected":t,className:(0,g.cn)("relative flex w-full cursor-default items-center rounded-sm px-2 py-1.5 text-sm transition-colors outline-none select-none","hover:bg-accent hover:text-accent-foreground","data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground","disabled:pointer-events-none disabled:opacity-50",e),...s}));S.displayName="CommandItem",t.forwardRef(({className:e,...t},s)=>(0,a.jsx)("div",{ref:s,className:(0,g.cn)("bg-border -mx-1 h-px",e),...t})).displayName="CommandSeparator";var k=e.i(90382);function R({open:e,onClose:s,onSubmit:r,isSubmitting:o=!1,error:n,repositories:l=[],selectedRepositoryPath:v,onRepositoryChange:L,branches:B=[],branchesLoading:P=!1}){let[E,D]=(0,t.useState)(""),[T,I]=(0,t.useState)(!1),[U,A]=(0,t.useState)(""),O=(0,t.useRef)(null),[F,G]=(0,t.useState)(!1),[K,M]=(0,t.useState)(""),$=(0,t.useRef)(null),z=l.find(e=>e.path===v),W=!!v;(0,t.useEffect)(()=>{e||(D(""),A(""),I(!1),G(!1),M(""))},[e]),(0,t.useEffect)(()=>{D(""),A("")},[v]);let q=(0,t.useCallback)(e=>{e.preventDefault();let a=E.trim();a&&v&&!o&&r(a,v)},[E,v,o,r]),H=(0,t.useCallback)(()=>{D(""),A(""),s()},[s]),J=(0,t.useCallback)(e=>{D(e),A(e),I(!1)},[]),Q=(0,t.useCallback)(e=>{A(e.target.value),T||I(!0)},[T]),V=(0,t.useCallback)(e=>{if("Enter"===e.key){e.preventDefault();let a=U.trim();a&&(D(a),I(!1))}"Escape"===e.key&&(I(!1),A(E))},[U,E]),X=(0,t.useCallback)(e=>{L?.(e),G(!1),M("")},[L]),Y=B.filter(e=>e.toLowerCase().includes(U.toLowerCase())),Z=K.trim()?l.filter(e=>e.name.toLowerCase().includes(K.toLowerCase())||e.path.toLowerCase().includes(K.toLowerCase())):l;(0,t.useEffect)(()=>{F?setTimeout(()=>$.current?.focus(),0):M("")},[F]);let _=!E.trim()||!v||o,ee=(0,a.jsxs)("div",{children:[(0,a.jsxs)(m.DrawerTitle,{className:"flex items-center gap-2",children:[(0,a.jsx)(p.GitBranch,{className:"h-4 w-4"}),"Adopt Branch"]}),(0,a.jsx)(m.DrawerDescription,{className:"text-muted-foreground text-sm",children:"Import an existing git branch into ShipIT's feature tracking"})]});return(0,a.jsx)(u.BaseDrawer,{open:e,onClose:H,size:"sm",modal:!1,header:ee,"data-testid":"adopt-branch-drawer",children:(0,a.jsxs)("form",{onSubmit:q,className:"flex flex-1 flex-col",children:[(0,a.jsx)("div",{className:"flex-1 overflow-y-auto p-4",children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(b.Label,{children:"Repository"}),(0,a.jsxs)(k.Popover,{open:F,onOpenChange:G,children:[(0,a.jsx)(k.PopoverTrigger,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",role:"combobox","aria-expanded":F,"aria-label":"Repository",disabled:o,"data-testid":"adopt-repo-combobox",className:(0,g.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",!z&&"text-muted-foreground"),children:[(0,a.jsx)("span",{className:"truncate",children:z?z.name:"Select repository..."}),(0,a.jsx)(d.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(k.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"adopt-repo-combobox-content",children:(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("div",{className:"border-b p-2",children:(0,a.jsx)(f.Input,{ref:$,placeholder:"Search repositories...",value:K,onChange:e=>M(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"adopt-repo-search"})}),(0,a.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===Z.length?(0,a.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No repositories found."}):Z.map(e=>(0,a.jsxs)("button",{type:"button",role:"option","aria-selected":v===e.path,onClick:()=>X(e.path),className:(0,g.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",v===e.path&&"bg-accent/50"),"data-testid":`adopt-repo-option-${e.id}`,children:[(0,a.jsx)(c.CheckIcon,{className:(0,g.cn)("h-4 w-4 shrink-0",v!==e.path&&"invisible")}),(0,a.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,a.jsx)("span",{className:"truncate",children:e.name}),(0,a.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path})]})]},e.id))})]})})]}),(0,a.jsx)("p",{className:"text-muted-foreground text-xs",children:"Select the repository that contains the branch you want to adopt."})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(b.Label,{htmlFor:"branch-name",children:"Branch name"}),(0,a.jsxs)(k.Popover,{open:T,onOpenChange:I,children:[(0,a.jsx)(k.PopoverTrigger,{asChild:!0,children:(0,a.jsxs)(x.Button,{variant:"outline",role:"combobox","aria-expanded":T,"aria-invalid":!!n,"aria-describedby":n?"adopt-branch-error-msg":void 0,disabled:o||!W,className:"w-full justify-between font-normal","data-testid":"adopt-branch-input",children:[(0,a.jsx)("span",{className:"truncate",children:W?P?"Loading branches...":E||"Select a branch...":"Select a repository first..."}),(0,a.jsx)(d.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(k.PopoverContent,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",children:(0,a.jsxs)(j,{children:[(0,a.jsx)(w,{ref:O,placeholder:"Search branches...",value:U,onChange:Q,onKeyDown:V,"data-testid":"adopt-branch-search"}),(0,a.jsxs)(N,{children:[!P&&0===Y.length&&(0,a.jsx)(y,{children:0===B.length?"No branches found.":U?"No match — press Enter to use this value.":"No branches available."}),P?(0,a.jsx)(y,{children:(0,a.jsx)(h.Loader2,{className:"mx-auto h-4 w-4 animate-spin"})}):null,Y.length>0&&(0,a.jsx)(C,{children:Y.map(e=>(0,a.jsxs)(S,{selected:e===E,onClick:()=>J(e),children:[(0,a.jsx)(i.Check,{className:(0,g.cn)("me-2 h-4 w-4",e===E?"opacity-100":"opacity-0")}),(0,a.jsx)(p.GitBranch,{className:"me-2 h-3 w-3 opacity-50"}),e]},e))})]})]})})]}),(0,a.jsx)("p",{className:"text-muted-foreground text-xs",children:W?"Select a branch from the dropdown or type to search. Local and remote branches are shown.":"Please select a repository above to see available branches."})]}),n?(0,a.jsx)("p",{id:"adopt-branch-error-msg",className:"text-destructive text-sm",role:"alert","data-testid":"adopt-branch-error",children:n}):null]})}),(0,a.jsx)("div",{className:"border-t p-4",children:(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(x.Button,{type:"button",variant:"outline",onClick:H,disabled:o,className:"flex-1",children:"Cancel"}),(0,a.jsx)(x.Button,{type:"submit",disabled:_,className:"flex-1","data-testid":"adopt-branch-submit",children:o?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.Loader2,{className:"me-2 h-4 w-4 animate-spin"}),"Adopting..."]}):"Adopt Branch"})]})})]})})}e.s(["AdoptDrawerClient",0,function({repositoryPath:e,repositories:o}){let i=(0,s.useRouter)(),c=(0,s.usePathname)(),[d,p]=(0,t.useState)(!1),[h,u]=(0,t.useState)(),[m,x]=(0,t.useState)([]),[f,b]=(0,t.useState)(!1),[v,g]=(0,t.useState)(e),j=c.startsWith("/adopt"),w=!d&&j;(0,t.useEffect)(()=>{!j&&d&&p(!1)},[j,d]),(0,t.useEffect)(()=>{j&&(u(void 0),g(e))},[j,e]),(0,t.useEffect)(()=>{j&&v?(b(!0),x([]),l(v).then(x).catch(()=>x([])).finally(()=>b(!1))):x([])},[j,v]);let N=(0,t.useCallback)(()=>{i.push("/")},[i]),y=(0,t.useCallback)(e=>{g(e)},[]),C=(0,t.useCallback)((e,a)=>{u(void 0),p(!0),i.push("/"),n({branchName:e,repositoryPath:a}).then(e=>{e.error?r.toast.error(e.error):(window.dispatchEvent(new CustomEvent("shipit-ai:feature-created",{detail:{featureId:e.feature.id,name:e.feature.name,description:e.feature.description,repositoryPath:e.feature.repositoryPath}})),r.toast.success(`Branch adopted as "${e.feature.name}"`))}).catch(()=>{r.toast.error("Failed to adopt branch"),p(!1)})},[i]);return(0,a.jsx)(R,{open:w,onClose:N,onSubmit:C,isSubmitting:d,error:h,repositories:o,selectedRepositoryPath:v,onRepositoryChange:y,branches:m,branchesLoading:f})}],36479)}]);