@shipit-ai/cli 1.164.2-pr10.a97589c → 1.164.2-pr10.c4e0d39

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 (600) 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 +2 -2
  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/[root-of-the-server]__0.2exzi._.js.map +1 -1
  369. package/web/.next/server/chunks/[root-of-the-server]__02xmnal._.js.map +1 -1
  370. package/web/.next/server/chunks/[root-of-the-server]__04jjtl_._.js.map +1 -1
  371. package/web/.next/server/chunks/[root-of-the-server]__07suer1._.js.map +1 -1
  372. package/web/.next/server/chunks/[root-of-the-server]__09118p2._.js.map +1 -1
  373. package/web/.next/server/chunks/[root-of-the-server]__0_.w-eb._.js.map +1 -1
  374. package/web/.next/server/chunks/[root-of-the-server]__0ip_e1x._.js.map +1 -1
  375. package/web/.next/server/chunks/{[root-of-the-server]__0l1p8bx._.js → [root-of-the-server]__0ob3z53._.js} +2 -2
  376. package/web/.next/server/chunks/{[root-of-the-server]__0l1p8bx._.js.map → [root-of-the-server]__0ob3z53._.js.map} +1 -1
  377. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  378. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  379. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  380. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  381. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  382. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  383. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  384. package/web/.next/server/chunks/ssr/11es_next_dist_0e36~wi._.js +1 -1
  385. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js +1 -1
  386. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_global-chat-drawer-client_tsx_03s32.q._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  388. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js +4 -0
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.j0ktf._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js +3 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__07m44ax._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__0_ag.8y._.js +1 -1
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__0frgz11._.js +4 -0
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__0frgz11._.js.map +1 -0
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js +4 -0
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__0oi7r67._.js.map +1 -0
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pti1a3._.js +4 -0
  399. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pti1a3._.js.map +1 -0
  400. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qh.wn.._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  402. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js +4 -0
  404. package/web/.next/server/chunks/ssr/[root-of-the-server]__0s9k_s3._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js +4 -0
  406. package/web/.next/server/chunks/ssr/[root-of-the-server]__0v-vmgt._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/[root-of-the-server]__0yky~xo._.js +4 -0
  408. package/web/.next/server/chunks/ssr/[root-of-the-server]__0yky~xo._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js +1 -1
  410. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/[root-of-the-server]__11dc42t._.js +4 -0
  412. package/web/.next/server/chunks/ssr/[root-of-the-server]__11dc42t._.js.map +1 -0
  413. package/web/.next/server/chunks/ssr/_09g41d0._.js +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/_0d-pkk0._.js +1 -1
  419. package/web/.next/server/chunks/ssr/_0d4miu.._.js +4 -0
  420. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -0
  421. package/web/.next/server/chunks/ssr/_0e5cv3q._.js +1 -1
  422. package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +1 -1
  423. package/web/.next/server/chunks/ssr/_0e8ern9._.js +4 -0
  424. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -0
  425. package/web/.next/server/chunks/ssr/_0ez.1o4._.js +1 -1
  426. package/web/.next/server/chunks/ssr/_0ez.1o4._.js.map +1 -1
  427. package/web/.next/server/chunks/ssr/{_0_rw~d1._.js → _0f6z9wx._.js} +2 -2
  428. package/web/.next/server/chunks/ssr/{_0_rw~d1._.js.map → _0f6z9wx._.js.map} +1 -1
  429. package/web/.next/server/chunks/ssr/_0hovej-._.js +6 -0
  430. package/web/.next/server/chunks/ssr/_0hovej-._.js.map +1 -0
  431. package/web/.next/server/chunks/ssr/_0p3zs6p._.js +3 -0
  432. package/web/.next/server/chunks/ssr/_0p3zs6p._.js.map +1 -0
  433. package/web/.next/server/chunks/ssr/_0qpq3xl._.js +3 -0
  434. package/web/.next/server/chunks/ssr/_0qpq3xl._.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +4 -0
  436. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/{_0didmia._.js → _0rwm4wq._.js} +2 -2
  438. package/web/.next/server/chunks/ssr/{_0didmia._.js.map → _0rwm4wq._.js.map} +1 -1
  439. package/web/.next/server/chunks/ssr/{_01mq~sm._.js → _0sgeiju._.js} +2 -2
  440. package/web/.next/server/chunks/ssr/{_01mq~sm._.js.map → _0sgeiju._.js.map} +1 -1
  441. package/web/.next/server/chunks/ssr/_0t59q8r._.js +4 -0
  442. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -0
  443. package/web/.next/server/chunks/ssr/{_0cmq7cz._.js → _0utxfz5._.js} +2 -2
  444. package/web/.next/server/chunks/ssr/{_0cmq7cz._.js.map → _0utxfz5._.js.map} +1 -1
  445. package/web/.next/server/chunks/ssr/_0v.yfmg._.js +1 -1
  446. package/web/.next/server/chunks/ssr/_0v.yfmg._.js.map +1 -1
  447. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  448. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  449. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +4 -0
  450. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -0
  451. package/web/.next/server/chunks/ssr/_0~ev6dw._.js +6 -0
  452. package/web/.next/server/chunks/ssr/_0~ev6dw._.js.map +1 -0
  453. package/web/.next/server/chunks/ssr/_1161g9x._.js +4 -0
  454. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -0
  455. package/web/.next/server/chunks/ssr/_11kuznh._.js +1 -1
  456. package/web/.next/server/chunks/ssr/_11kuznh._.js.map +1 -1
  457. package/web/.next/server/chunks/ssr/_13euo-f._.js +1 -1
  458. package/web/.next/server/chunks/ssr/_13euo-f._.js.map +1 -1
  459. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +3 -0
  460. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -0
  461. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +3 -0
  462. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  464. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
  465. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js +1 -1
  466. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +1 -1
  467. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  468. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  469. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
  470. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
  471. package/web/.next/server/edge/chunks/0pax_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js +3 -0
  472. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0atr6ca.js.map +1 -0
  473. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js +3 -0
  474. package/web/.next/server/edge/chunks/11es_next_dist_esm_build_templates_edge-wrapper_0xg0zx-.js.map +1 -0
  475. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js +11 -0
  476. package/web/.next/server/edge/chunks/[root-of-the-server]__0m078x4._.js.map +1 -0
  477. package/web/.next/server/functions-config-manifest.json +1 -11
  478. package/web/.next/server/middleware/middleware-manifest.json +27 -1
  479. package/web/.next/server/middleware-build-manifest.js +5 -5
  480. package/web/.next/server/middleware-manifest.json +32 -2
  481. package/web/.next/server/pages/500.html +1 -1
  482. package/web/.next/server/server-reference-manifest.js +1 -1
  483. package/web/.next/server/server-reference-manifest.json +56 -80
  484. package/web/.next/static/chunks/{0~er~22zwvx0i.js → 0.hbng76i27nw.js} +1 -1
  485. package/web/.next/static/chunks/{0hfrrtui07454.js → 02833lnol2gx-.js} +1 -1
  486. package/web/.next/static/chunks/{0f2uwlgu6_ke9.js → 02b0d-jfu0-6d.js} +1 -1
  487. package/web/.next/static/chunks/{0vumtm-.qy4jj.js → 02t~w.m0crz53.js} +1 -1
  488. package/web/.next/static/chunks/{08iuksm8rvb09.js → 0bdtgeoys8bq..js} +1 -1
  489. package/web/.next/static/chunks/{16igrl-x.arjm.js → 0cj-x42guhnqx.js} +1 -1
  490. package/web/.next/static/chunks/0dr6q94jmx86b.css +1 -0
  491. package/web/.next/static/chunks/0gxp_yp8ssvve.js +1 -0
  492. package/web/.next/static/chunks/{0h4b8hqv3nx5k.js → 0i8.i3jieogv5.js} +2 -2
  493. package/web/.next/static/chunks/{0os~x74548~2v.js → 0po0ue~fgonw1.js} +2 -2
  494. package/web/.next/static/chunks/{15m2wfd5k_7fj.js → 0rnvcu2blaow4.js} +1 -1
  495. package/web/.next/static/chunks/0tfdphimjl5ye.js +1 -0
  496. package/web/.next/static/chunks/{0wmckrtphfa12.js → 0vlx6s5d1~d-w.js} +1 -1
  497. package/web/.next/static/chunks/0w6qjg_fyb4vv.js +1 -0
  498. package/web/.next/static/chunks/{06i0jbwvsh9dt.js → 0z1yhd4ri2_hl.js} +1 -1
  499. package/web/.next/static/chunks/0z5-igp~i~aiw.js +3 -0
  500. package/web/.next/static/chunks/{03~v6v2nap7mo.js → 10dvor.6l1cmy.js} +1 -1
  501. package/web/.next/static/chunks/{0riti1bs-erm~.js → 13xg0bjtuso~r.js} +1 -1
  502. package/web/.next/static/chunks/{0blwygqw94n06.js → 14kxnhot63qht.js} +1 -1
  503. package/web/.next/static/chunks/{turbopack-0ve8f54_veg.u.js → turbopack-0tcz030eo3-6l.js} +1 -1
  504. package/web/.next/static/{iVeg_0a4LmR6dgTlRNfbG → tAEzEEsC14Bdgtrc-RPtH}/_clientMiddlewareManifest.js +1 -1
  505. package/web/public/favicon-dark.svg +6 -0
  506. package/web/public/favicon-light.svg +6 -0
  507. package/web/public/icons/agents/openai.svg +1 -1
  508. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts +0 -54
  509. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.d.ts.map +0 -1
  510. package/dist/packages/core/src/application/ports/output/services/environment-detector.service.js +0 -8
  511. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts +0 -18
  512. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.d.ts.map +0 -1
  513. package/dist/packages/core/src/application/use-cases/settings/detect-environment-defaults.use-case.js +0 -40
  514. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts +0 -38
  515. package/dist/packages/core/src/infrastructure/services/environment-detector.service.d.ts.map +0 -1
  516. package/dist/packages/core/src/infrastructure/services/environment-detector.service.js +0 -196
  517. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +0 -20
  518. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/codex-cli.json +0 -31
  519. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +0 -19
  520. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +0 -24
  521. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +0 -19
  522. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts +0 -14
  523. package/dist/src/presentation/web/app/actions/get-available-editors.d.ts.map +0 -1
  524. package/dist/src/presentation/web/app/actions/get-available-editors.js +0 -24
  525. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts +0 -14
  526. package/dist/src/presentation/web/app/actions/get-available-shells.d.ts.map +0 -1
  527. package/dist/src/presentation/web/app/actions/get-available-shells.js +0 -22
  528. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +0 -1
  529. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +0 -8
  530. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.stories.d.ts.map +0 -1
  531. package/dist/src/presentation/web/proxy.d.ts.map +0 -1
  532. package/web/.next/server/chunks/[externals]__11vad82._.js +0 -3
  533. package/web/.next/server/chunks/[externals]__11vad82._.js.map +0 -1
  534. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js +0 -20
  535. package/web/.next/server/chunks/[root-of-the-server]__13ni_ow._.js.map +0 -1
  536. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +0 -3
  537. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +0 -1
  538. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +0 -3
  539. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +0 -1
  540. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +0 -3
  541. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +0 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js +0 -3
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__01~y8wi._.js.map +0 -1
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js +0 -3
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__0np51e2._.js.map +0 -1
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js +0 -3
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uxn6-j._.js.map +0 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js +0 -3
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~h382a._.js.map +0 -1
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js +0 -4
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js.map +0 -1
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js +0 -3
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__12qqi.~._.js.map +0 -1
  554. package/web/.next/server/chunks/ssr/_0jpbsh_._.js +0 -4
  555. package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +0 -1
  556. package/web/.next/server/chunks/ssr/_0n.xy38._.js +0 -3
  557. package/web/.next/server/chunks/ssr/_0n.xy38._.js.map +0 -1
  558. package/web/.next/server/chunks/ssr/_0rvaoj4._.js +0 -3
  559. package/web/.next/server/chunks/ssr/_0rvaoj4._.js.map +0 -1
  560. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +0 -3
  561. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +0 -1
  562. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +0 -3
  563. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +0 -1
  564. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +0 -5
  565. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +0 -1
  566. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +0 -3
  567. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +0 -1
  568. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +0 -3
  569. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +0 -1
  570. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +0 -5
  571. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +0 -1
  572. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +0 -3
  573. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +0 -1
  574. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +0 -3
  575. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +0 -1
  576. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +0 -3
  577. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +0 -1
  578. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +0 -3
  579. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +0 -1
  580. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +0 -3
  581. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +0 -1
  582. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +0 -3
  583. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map +0 -1
  584. package/web/.next/server/middleware.js +0 -5
  585. package/web/.next/server/middleware.js.map +0 -5
  586. package/web/.next/server/middleware.js.nft.json +0 -1
  587. package/web/.next/static/chunks/0.sym6jfj6grq.js +0 -3
  588. package/web/.next/static/chunks/020evfj~hwo.y.js +0 -1
  589. package/web/.next/static/chunks/03ot13wr2b66m.js +0 -1
  590. package/web/.next/static/chunks/0r5dju6f1-i38.css +0 -1
  591. package/web/.next/static/chunks/0s_bs2xnidmdu.js +0 -1
  592. package/web/public/apple-touch-icon.png +0 -0
  593. package/web/public/favicon-32x32.png +0 -0
  594. package/web/public/icon-192.png +0 -0
  595. package/web/public/icon-512.png +0 -0
  596. package/web/public/shipit-brain.png +0 -0
  597. package/web/public/shipit-icon.svg +0 -68
  598. package/web/public/shipit-logo.png +0 -0
  599. /package/web/.next/static/{iVeg_0a4LmR6dgTlRNfbG → tAEzEEsC14Bdgtrc-RPtH}/_buildManifest.js +0 -0
  600. /package/web/.next/static/{iVeg_0a4LmR6dgTlRNfbG → tAEzEEsC14Bdgtrc-RPtH}/_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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} from 'ACTIONS_MODULE9'\nexport {openIde as '401c124cb7396699967cf55bb6102c55dea07d3d3d'} from 'ACTIONS_MODULE10'\nexport {openShell as '40106a261290ce0bdde5fcc8eb1ef708d9af02c592'} from 'ACTIONS_MODULE11'\nexport {openFolder as '408a4ba2b2812181d22dde62cc3008272c035cec2c'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '40123fbc93e255743404ed4cc377186470653e04cc'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00712011f3af0221b63e778a5d8cb1c544a65a5264'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '001c04bed1a58f159bf4f3d500ed006fd175b2ee54'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00599b55b00e4924f8a3aad9faf9932794edd53a14'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4052c1ee61ed67407129d65d5febe5e61a13c7181c'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40a61801f9f327dfed8d67ddc18967142d8be14715'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '787cd99e58b859f00afaa673774b2fefb31c7348ef'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '4029827c8336ffad036727d6267a1a4aa1cdf1089d'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40b661953973fe27fa41dbc144e573f50669989c4a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40034217dd914b99fb3a2ae419c1b0be675eb473ba'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '40554d2c49eb9de485f976ca5c26772209afe84e22'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40994187ce523aed8ba02c663639d4dd307a6cf1ec'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402b05c4c291c21ea949b2abc96c714c0cfd480654'} from 'ACTIONS_MODULE26'\nexport {getWorkflowDefaults as '00d5d587e9eb5be9b964ab632a70b274d644ad2f60'} from 'ACTIONS_MODULE27'\nexport {getViewerPermission as '40d035e6c0bc1955090d00c8c8d90be2ab5aee338e'} from 'ACTIONS_MODULE28'\nexport {createFeature as '409fbab1981a169c1660f22e7938a6b1fa1c174f1b'} from 'ACTIONS_MODULE29'\nexport {getViewerPermission as '40d035e6c0bc1955090d00c8c8d90be2ab5aee338e'} 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,"605f3e1d19a517de8d99c3368c8ad8073f0657f3b1",null),(0,b.registerServerReference)(i,"60cd6a5d72f3da185208ba5bac6c7c816aeef5f739",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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"001c04bed1a58f159bf4f3d500ed006fd175b2ee54",()=>r.checkAgentAuth,"00599b55b00e4924f8a3aad9faf9932794edd53a14",()=>s.checkToolStatus,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00712011f3af0221b63e778a5d8cb1c544a65a5264",()=>q.isAgentSetupComplete,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"40034217dd914b99fb3a2ae419c1b0be675eb473ba",()=>y.stopFeature,"40106a261290ce0bdde5fcc8eb1ef708d9af02c592",()=>m.openShell,"40123fbc93e255743404ed4cc377186470653e04cc",()=>o.syncRepository,"401c124cb7396699967cf55bb6102c55dea07d3d3d",()=>l.openIde,"4029827c8336ffad036727d6267a1a4aa1cdf1089d",()=>w.resumeFeature,"402b05c4c291c21ea949b2abc96c714c0cfd480654",()=>B.deleteRepository,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>k.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"4052c1ee61ed67407129d65d5febe5e61a13c7181c",()=>t.getFeatureMetadata,"40554d2c49eb9de485f976ca5c26772209afe84e22",()=>z.unarchiveFeature,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>p.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>j.stopDeployment,"408a4ba2b2812181d22dde62cc3008272c035cec2c",()=>n.openFolder,"40994187ce523aed8ba02c663639d4dd307a6cf1ec",()=>A.addRepository,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>i.deployRepository,"40a61801f9f327dfed8d67ddc18967142d8be14715",()=>u.archiveFeature,"40b661953973fe27fa41dbc144e573f50669989c4a",()=>x.startFeature,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>h.deployFeature,"605f3e1d19a517de8d99c3368c8ad8073f0657f3b1",()=>C.getGitRepoInfo,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>c.updateAgentAndModel,"787cd99e58b859f00afaa673774b2fefb31c7348ef",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} from 'ACTIONS_MODULE9'\nexport {openIde as '401c124cb7396699967cf55bb6102c55dea07d3d3d'} from 'ACTIONS_MODULE10'\nexport {openShell as '40106a261290ce0bdde5fcc8eb1ef708d9af02c592'} from 'ACTIONS_MODULE11'\nexport {openFolder as '408a4ba2b2812181d22dde62cc3008272c035cec2c'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '40123fbc93e255743404ed4cc377186470653e04cc'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00712011f3af0221b63e778a5d8cb1c544a65a5264'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '001c04bed1a58f159bf4f3d500ed006fd175b2ee54'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00599b55b00e4924f8a3aad9faf9932794edd53a14'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4052c1ee61ed67407129d65d5febe5e61a13c7181c'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40a61801f9f327dfed8d67ddc18967142d8be14715'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '787cd99e58b859f00afaa673774b2fefb31c7348ef'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '4029827c8336ffad036727d6267a1a4aa1cdf1089d'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40b661953973fe27fa41dbc144e573f50669989c4a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40034217dd914b99fb3a2ae419c1b0be675eb473ba'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '40554d2c49eb9de485f976ca5c26772209afe84e22'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40994187ce523aed8ba02c663639d4dd307a6cf1ec'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402b05c4c291c21ea949b2abc96c714c0cfd480654'} from 'ACTIONS_MODULE26'\nexport {getGitRepoInfo as '605f3e1d19a517de8d99c3368c8ad8073f0657f3b1'} 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,"605f3e1d19a517de8d99c3368c8ad8073f0657f3b1",null),(0,b.registerServerReference)(i,"60cd6a5d72f3da185208ba5bac6c7c816aeef5f739",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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"001c04bed1a58f159bf4f3d500ed006fd175b2ee54",()=>r.checkAgentAuth,"00599b55b00e4924f8a3aad9faf9932794edd53a14",()=>s.checkToolStatus,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00712011f3af0221b63e778a5d8cb1c544a65a5264",()=>q.isAgentSetupComplete,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"40034217dd914b99fb3a2ae419c1b0be675eb473ba",()=>y.stopFeature,"40106a261290ce0bdde5fcc8eb1ef708d9af02c592",()=>m.openShell,"40123fbc93e255743404ed4cc377186470653e04cc",()=>o.syncRepository,"401c124cb7396699967cf55bb6102c55dea07d3d3d",()=>l.openIde,"4029827c8336ffad036727d6267a1a4aa1cdf1089d",()=>w.resumeFeature,"402b05c4c291c21ea949b2abc96c714c0cfd480654",()=>B.deleteRepository,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>k.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"4052c1ee61ed67407129d65d5febe5e61a13c7181c",()=>t.getFeatureMetadata,"40554d2c49eb9de485f976ca5c26772209afe84e22",()=>z.unarchiveFeature,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>p.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>j.stopDeployment,"408a4ba2b2812181d22dde62cc3008272c035cec2c",()=>n.openFolder,"40994187ce523aed8ba02c663639d4dd307a6cf1ec",()=>A.addRepository,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>i.deployRepository,"40a61801f9f327dfed8d67ddc18967142d8be14715",()=>u.archiveFeature,"40b661953973fe27fa41dbc144e573f50669989c4a",()=>x.startFeature,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>h.deployFeature,"605f3e1d19a517de8d99c3368c8ad8073f0657f3b1",()=>C.getGitRepoInfo,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>c.updateAgentAndModel,"787cd99e58b859f00afaa673774b2fefb31c7348ef",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} from 'ACTIONS_MODULE9'\nexport {openIde as '401c124cb7396699967cf55bb6102c55dea07d3d3d'} from 'ACTIONS_MODULE10'\nexport {openShell as '40106a261290ce0bdde5fcc8eb1ef708d9af02c592'} from 'ACTIONS_MODULE11'\nexport {openFolder as '408a4ba2b2812181d22dde62cc3008272c035cec2c'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '40123fbc93e255743404ed4cc377186470653e04cc'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00712011f3af0221b63e778a5d8cb1c544a65a5264'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '001c04bed1a58f159bf4f3d500ed006fd175b2ee54'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00599b55b00e4924f8a3aad9faf9932794edd53a14'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4052c1ee61ed67407129d65d5febe5e61a13c7181c'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40a61801f9f327dfed8d67ddc18967142d8be14715'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '787cd99e58b859f00afaa673774b2fefb31c7348ef'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '4029827c8336ffad036727d6267a1a4aa1cdf1089d'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40b661953973fe27fa41dbc144e573f50669989c4a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40034217dd914b99fb3a2ae419c1b0be675eb473ba'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '40554d2c49eb9de485f976ca5c26772209afe84e22'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40994187ce523aed8ba02c663639d4dd307a6cf1ec'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402b05c4c291c21ea949b2abc96c714c0cfd480654'} from 'ACTIONS_MODULE26'\nexport {getGitRepoInfo as '605f3e1d19a517de8d99c3368c8ad8073f0657f3b1'} 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,"00d5d587e9eb5be9b964ab632a70b274d644ad2f60",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,"40d035e6c0bc1955090d00c8c8d90be2ab5aee338e",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,"409fbab1981a169c1660f22e7938a6b1fa1c174f1b",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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"001c04bed1a58f159bf4f3d500ed006fd175b2ee54",()=>r.checkAgentAuth,"00599b55b00e4924f8a3aad9faf9932794edd53a14",()=>s.checkToolStatus,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00712011f3af0221b63e778a5d8cb1c544a65a5264",()=>q.isAgentSetupComplete,"00d5d587e9eb5be9b964ab632a70b274d644ad2f60",()=>C.getWorkflowDefaults,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"40034217dd914b99fb3a2ae419c1b0be675eb473ba",()=>y.stopFeature,"40106a261290ce0bdde5fcc8eb1ef708d9af02c592",()=>m.openShell,"40123fbc93e255743404ed4cc377186470653e04cc",()=>o.syncRepository,"401c124cb7396699967cf55bb6102c55dea07d3d3d",()=>l.openIde,"4029827c8336ffad036727d6267a1a4aa1cdf1089d",()=>w.resumeFeature,"402b05c4c291c21ea949b2abc96c714c0cfd480654",()=>B.deleteRepository,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>k.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"4052c1ee61ed67407129d65d5febe5e61a13c7181c",()=>t.getFeatureMetadata,"40554d2c49eb9de485f976ca5c26772209afe84e22",()=>z.unarchiveFeature,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>p.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>j.stopDeployment,"408a4ba2b2812181d22dde62cc3008272c035cec2c",()=>n.openFolder,"40994187ce523aed8ba02c663639d4dd307a6cf1ec",()=>A.addRepository,"409fbab1981a169c1660f22e7938a6b1fa1c174f1b",()=>E.createFeature,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>i.deployRepository,"40a61801f9f327dfed8d67ddc18967142d8be14715",()=>u.archiveFeature,"40b661953973fe27fa41dbc144e573f50669989c4a",()=>x.startFeature,"40d035e6c0bc1955090d00c8c8d90be2ab5aee338e",()=>D.getViewerPermission,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>h.deployFeature,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>c.updateAgentAndModel,"787cd99e58b859f00afaa673774b2fefb31c7348ef",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} from 'ACTIONS_MODULE9'\nexport {openIde as '401c124cb7396699967cf55bb6102c55dea07d3d3d'} from 'ACTIONS_MODULE10'\nexport {openShell as '40106a261290ce0bdde5fcc8eb1ef708d9af02c592'} from 'ACTIONS_MODULE11'\nexport {openFolder as '408a4ba2b2812181d22dde62cc3008272c035cec2c'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '40123fbc93e255743404ed4cc377186470653e04cc'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00712011f3af0221b63e778a5d8cb1c544a65a5264'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '001c04bed1a58f159bf4f3d500ed006fd175b2ee54'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00599b55b00e4924f8a3aad9faf9932794edd53a14'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4052c1ee61ed67407129d65d5febe5e61a13c7181c'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40a61801f9f327dfed8d67ddc18967142d8be14715'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '787cd99e58b859f00afaa673774b2fefb31c7348ef'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '4029827c8336ffad036727d6267a1a4aa1cdf1089d'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40b661953973fe27fa41dbc144e573f50669989c4a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40034217dd914b99fb3a2ae419c1b0be675eb473ba'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '40554d2c49eb9de485f976ca5c26772209afe84e22'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40994187ce523aed8ba02c663639d4dd307a6cf1ec'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402b05c4c291c21ea949b2abc96c714c0cfd480654'} from 'ACTIONS_MODULE26'\nexport {getWorkflowDefaults as '00d5d587e9eb5be9b964ab632a70b274d644ad2f60'} from 'ACTIONS_MODULE27'\nexport {getViewerPermission as '40d035e6c0bc1955090d00c8c8d90be2ab5aee338e'} from 'ACTIONS_MODULE28'\nexport {createFeature as '409fbab1981a169c1660f22e7938a6b1fa1c174f1b'} from 'ACTIONS_MODULE29'\nexport {getViewerPermission as '40d035e6c0bc1955090d00c8c8d90be2ab5aee338e'} 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,"406bf7d9ad2991e419ee73c27075159c346426568d",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,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",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,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"4081400d16ace1f332606405e5d0f185910a91aab8",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>l.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>h.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>k.stopDeployment,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>j.deployRepository,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>i.deployFeature,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} 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,"406bf7d9ad2991e419ee73c27075159c346426568d",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,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",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,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"4081400d16ace1f332606405e5d0f185910a91aab8",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>l.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>h.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>k.stopDeployment,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>j.deployRepository,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>i.deployFeature,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} 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":"uDAEA,EAAA,EAAA,CAAA,CAAA,OAMO,eAAeA,EAAkBC,CAAgB,SACtD,AAAKA,GAAUC,CAAX,MAIsB,AACnBC,CALgB,AAIG,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC7BC,OAAO,CAACH,GAJxB,IAKX,0CAPsBD,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,+FCNtB,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,MCKA,IAAMK,EAAO,IAAMC,OAEZ,SAASC,EAAuBC,CAAc,EACnD,IAAMC,EAAU,CAAC,CAACC,QAAQC,GAAG,CAACC,KAAK,CAEnC,MAAO,CACLC,KAAMJ,EAAU,CAAC,GAAGK,IAAoBC,QAAQF,IAAI,CAACL,KAAWM,GAAQT,EACxEW,MAAOP,EAAU,CAAC,GAAGK,IAAoBC,QAAQC,KAAK,CAACR,KAAWM,GAAQT,EAC1EY,KAAM,CAAC,GAAGH,IAAoBC,QAAQE,IAAI,CAACT,KAAWM,GACtDI,MAAO,CAAC,GAAGJ,IAAoBC,QAAQG,KAAK,CAACV,KAAWM,EAC1D,CACF,CDhBA,IAAA,EAAA,EAAA,CAAA,CAAA,OAGA,EAAA,EAAA,CAAA,CAAA,OENA,EAAA,EAAA,CAAA,CAAA,OAOO,SAAS,EAAuB,CAAkB,EAGvD,GAAI,CACF,IAAM,EAAmB,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,CAAA,EAAA,EAAA,OAAA,AAAO,EAAC,IAAa,OAAO,CAAC,MAAO,KACpE,EAAqB,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,CAAA,EAAA,EAAA,OAAA,AAAO,EAJ5B,AAI6B,yDAAe,EAJO,KAIA,CAAC,EAJO,GAAG,CAIH,KAC9E,OAAO,IAAqB,CAC9B,CAAE,KAAM,CACN,OAAO,CACT,CACF,kBFRA,IAAM,EAAM,EAAuB,mBAE5BN,eAAe,EACpB,CAAiB,EAIjB,GAFA,EAAI,IAAI,CAAC,CAAC,oBAAoB,EAAE,EAAU,CAAC,CAAC,EAExC,CAAC,GAAW,OAEd,CAFsB,MACtB,EAAI,IAAI,CAAC,iCACF,CAAE,SAAS,EAAO,MAAO,uBAAwB,EAG1D,GAAI,CACF,IAAM,EAAc,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC1C,EAAU,MAAM,EAAY,QAAQ,CAAC,GAE3C,GAAI,CAAC,EAEH,OAFY,AACZ,EAAI,IAAI,CAAC,CAAC,kCAAkC,EAAE,EAAU,CAAC,CAAC,EACnD,CAAE,SAAS,EAAO,MAAO,CAAC,mBAAmB,EAAE,EAAA,CAAW,AAAC,EAGpE,EAAI,IAAI,CACN,CAAC,gCAAgC,EAAE,EAAQ,cAAc,CAAC,WAAW,EAAE,EAAQ,MAAM,CAAC,CAAC,CAAC,EAG1F,IAAM,EAAe,CAAA,EAAA,EAAA,mBAAA,AAAmB,EAAC,EAAQ,cAAc,CAAE,EAAQ,MAAM,EAG/E,GAFA,EAAI,IAAI,CAAC,CAAC,uBAAuB,EAAE,EAAa,CAAC,CAAC,EAE9C,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GAEd,OADA,EAAI,GADyB,CACrB,CAAC,CAAC,uCAAuC,EAAE,EAAa,CAAC,CAAC,EAC3D,CAAE,SAAS,EAAO,MAAO,CAAC,8BAA8B,EAAE,EAAA,CAAe,AAAD,EAGjF,GAAI,EAAuB,EAAQ,cAAc,EAE/C,CAFkD,MAClD,EAAI,IAAI,CAAC,6DACF,CACL,SAAS,EACT,MAAO,iFACT,EAQF,OALA,EAAI,IAAI,CAAC,2DACiB,AAC1B,AAD0B,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBACpC,KAAK,CAAC,EAAW,EAAc,WAEjD,EAAI,IAAI,CAAC,iDACF,CAAE,SAAS,EAAM,MAAO,EAAA,eAAe,CAAC,OAAO,AAAC,CACzD,CAAE,MAAO,EAAgB,CACvB,IAAM,EAAU,aAAiB,MAAQ,EAAM,OAAO,CAAG,2BAEzD,OADA,EAAI,KAAK,CAAC,CAAC,OAAO,EAAE,EAAA,CAAS,CAAE,GACxB,CAAE,SAAS,EAAO,MAAO,CAAQ,CAC1C,CACF,iCAlDsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,uCGFtB,IAAM,EAAM,EAAuB,sBAE5B,eAAe,EACpB,CAAsB,EAItB,GAFA,EAAI,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAe,CAAC,CAAC,EAElD,CAAC,GAAkB,CAAC,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GAEjC,OADA,EAAI,IAAI,CAD0C,AACzC,mCACF,CAAE,SAAS,EAAO,MAAO,yCAA0C,EAG5E,GAAI,CACF,GAAI,CAAC,CAAA,EAAA,EAAA,UAAU,AAAV,EAAW,GAEd,OADA,EAAI,IAAI,CADuB,AACtB,CAAC,2BAA2B,EAAE,EAAe,CAAC,CAAC,EACjD,CAAE,SAAS,EAAO,MAAO,CAAC,0BAA0B,EAAE,EAAA,CAAgB,AAAC,EAGhF,GAAI,EAAuB,GAEzB,OADA,EAAI,IAAI,CADkC,AACjC,oDACF,CACL,SAAS,EACT,MAAO,qEACT,EAQF,OALA,EAAI,IAAI,CAAC,uDAET,AAD0B,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBACpC,KAAK,CAAC,EAAgB,EAAgB,cAExD,EAAI,IAAI,CAAC,iDACF,CAAE,SAAS,EAAM,MAAO,EAAA,eAAe,CAAC,OAAO,AAAC,CACzD,CAAE,MAAO,EAAgB,CACvB,IAAM,EAAU,aAAiB,MAAQ,EAAM,OAAO,CAAG,8BAEzD,OADA,EAAI,KAAK,CAAC,CAAC,OAAO,EAAE,EAAA,CAAS,CAAE,GACxB,CAAE,SAAS,EAAO,MAAO,CAAQ,CAC1C,CACF,CC1CO,eAAe,EACpB,CAAgB,EAEhB,GAAI,CAAC,GAAU,OACb,CADqB,KACdE,CAAE,SAAS,EAAO,MAAO,sBAAuB,EAGzD,GAAI,CACF,IAAM,EAAoB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAGtD,OAFA,MAAM,EAAkB,IAAI,CAAC,GAEtBO,CAAE,SAAS,CAAK,CACzB,CAAE,MAAOF,EAAgB,CAEvB,MAAO,CAAE,SAAS,EAAO,MADT,CACgB,YADC,MAAQ,EAAM,OAAO,CAAG,2BACjB,CAC1C,CACF,CCbO,eAAe,EAAoB,CAAgB,SACxD,AAAK,GAAU,CAAX,MAIsB,AACnB,CALgB,AAIG,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAC7B,SAAS,CAACD,GAJ1B,IAKX,iCFHsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,0ECPA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,wECGA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,qECRtB,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"}
@@ -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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"001c04bed1a58f159bf4f3d500ed006fd175b2ee54",()=>r.checkAgentAuth,"00599b55b00e4924f8a3aad9faf9932794edd53a14",()=>s.checkToolStatus,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00712011f3af0221b63e778a5d8cb1c544a65a5264",()=>q.isAgentSetupComplete,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"40034217dd914b99fb3a2ae419c1b0be675eb473ba",()=>y.stopFeature,"40106a261290ce0bdde5fcc8eb1ef708d9af02c592",()=>m.openShell,"40123fbc93e255743404ed4cc377186470653e04cc",()=>o.syncRepository,"401c124cb7396699967cf55bb6102c55dea07d3d3d",()=>l.openIde,"4029827c8336ffad036727d6267a1a4aa1cdf1089d",()=>w.resumeFeature,"402b05c4c291c21ea949b2abc96c714c0cfd480654",()=>B.deleteRepository,"4033d65556b4c03748ba65aaa0f3a8298feb48ad4b",()=>k.getDeploymentStatus,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"4052c1ee61ed67407129d65d5febe5e61a13c7181c",()=>t.getFeatureMetadata,"40554d2c49eb9de485f976ca5c26772209afe84e22",()=>z.unarchiveFeature,"406bf7d9ad2991e419ee73c27075159c346426568d",()=>p.getDeploymentLogs,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"4081400d16ace1f332606405e5d0f185910a91aab8",()=>j.stopDeployment,"408a4ba2b2812181d22dde62cc3008272c035cec2c",()=>n.openFolder,"40994187ce523aed8ba02c663639d4dd307a6cf1ec",()=>A.addRepository,"409fbdaef9134514a8dfffe022ef26f58edb7ff2a6",()=>i.deployRepository,"40a61801f9f327dfed8d67ddc18967142d8be14715",()=>u.archiveFeature,"40b661953973fe27fa41dbc144e573f50669989c4a",()=>x.startFeature,"40d0eaf52db59e882a12122c0a9a73f5f77268b2f8",()=>h.deployFeature,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>c.updateAgentAndModel,"787cd99e58b859f00afaa673774b2fefb31c7348ef",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} from 'ACTIONS_MODULE5'\nexport {deployFeature as '40d0eaf52db59e882a12122c0a9a73f5f77268b2f8'} from 'ACTIONS_MODULE6'\nexport {deployRepository as '409fbdaef9134514a8dfffe022ef26f58edb7ff2a6'} from 'ACTIONS_MODULE7'\nexport {stopDeployment as '4081400d16ace1f332606405e5d0f185910a91aab8'} from 'ACTIONS_MODULE8'\nexport {getDeploymentStatus as '4033d65556b4c03748ba65aaa0f3a8298feb48ad4b'} from 'ACTIONS_MODULE9'\nexport {openIde as '401c124cb7396699967cf55bb6102c55dea07d3d3d'} from 'ACTIONS_MODULE10'\nexport {openShell as '40106a261290ce0bdde5fcc8eb1ef708d9af02c592'} from 'ACTIONS_MODULE11'\nexport {openFolder as '408a4ba2b2812181d22dde62cc3008272c035cec2c'} from 'ACTIONS_MODULE12'\nexport {syncRepository as '40123fbc93e255743404ed4cc377186470653e04cc'} from 'ACTIONS_MODULE13'\nexport {getDeploymentLogs as '406bf7d9ad2991e419ee73c27075159c346426568d'} from 'ACTIONS_MODULE14'\nexport {isAgentSetupComplete as '00712011f3af0221b63e778a5d8cb1c544a65a5264'} from 'ACTIONS_MODULE15'\nexport {checkAgentAuth as '001c04bed1a58f159bf4f3d500ed006fd175b2ee54'} from 'ACTIONS_MODULE16'\nexport {checkToolStatus as '00599b55b00e4924f8a3aad9faf9932794edd53a14'} from 'ACTIONS_MODULE17'\nexport {getFeatureMetadata as '4052c1ee61ed67407129d65d5febe5e61a13c7181c'} from 'ACTIONS_MODULE18'\nexport {archiveFeature as '40a61801f9f327dfed8d67ddc18967142d8be14715'} from 'ACTIONS_MODULE19'\nexport {deleteFeature as '787cd99e58b859f00afaa673774b2fefb31c7348ef'} from 'ACTIONS_MODULE20'\nexport {resumeFeature as '4029827c8336ffad036727d6267a1a4aa1cdf1089d'} from 'ACTIONS_MODULE21'\nexport {startFeature as '40b661953973fe27fa41dbc144e573f50669989c4a'} from 'ACTIONS_MODULE22'\nexport {stopFeature as '40034217dd914b99fb3a2ae419c1b0be675eb473ba'} from 'ACTIONS_MODULE23'\nexport {unarchiveFeature as '40554d2c49eb9de485f976ca5c26772209afe84e22'} from 'ACTIONS_MODULE24'\nexport {addRepository as '40994187ce523aed8ba02c663639d4dd307a6cf1ec'} from 'ACTIONS_MODULE25'\nexport {deleteRepository as '402b05c4c291c21ea949b2abc96c714c0cfd480654'} 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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} 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(["0012991b94f5966fb26ba21e1517f584d8a3aee034",()=>b.getAllAgentModels,"006c409aafaa46375a2072b7a32237771371960a70",()=>f.listGitHubOrganizations,"00f115e1b31f27ffa2d7cc246917b316090157f0a3",()=>d.pickFolder,"403d7fd2445f198df0c1761da9685453df73b6bbdd",()=>g.importGitHubRepository,"407db305aebd8110bbff96e734eada57460ad5e032",()=>e.listGitHubRepositories,"60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",()=>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 '0012991b94f5966fb26ba21e1517f584d8a3aee034'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00f115e1b31f27ffa2d7cc246917b316090157f0a3'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '407db305aebd8110bbff96e734eada57460ad5e032'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '006c409aafaa46375a2072b7a32237771371960a70'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '403d7fd2445f198df0c1761da9685453df73b6bbdd'} 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,"00ce33698deb4371bccc20ed4c6a39b5ca5b05a41c",null),a.s(["loadSettings",0,h],86561),(0,g.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"00c96e1fb33e84c43270e9de0f30b5f0e8e7f4964a",null),a.s(["getAvailableTerminals",0,i],8275),(0,g.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"0054ed6fcb7d48075fe52256cf95511d1b494d6228",null),a.s(["getAvailableEditors",0,j],75854),(0,g.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"00dc7d0c944902c659e59143b755f23b784272cbcf",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,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81846,e=>{"use strict";var t=e.i(96871),r=e.i(94237),n=e.i(31777);let o=(0,r.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:r,...i}){return(0,t.jsx)("div",{className:(0,n.cn)(o({variant:r}),e),...i})}])},90382,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(91967),o=e.i(22353),i=e.i(9413),a=e.i(3659),s=e.i(87656),l=e.i(62854),d=e.i(11207),c=e.i(73071),u=e.i(76903),p=e.i(90816),f=e.i(85565),g=e.i(60310),m=e.i(36567),h=e.i(73772),v=e.i(69759),x="Popover",[y,b]=(0,i.createContextScope)(x,[c.createPopperScope]),w=(0,c.createPopperScope)(),[j,C]=y(x),P=e=>{let{__scopePopover:n,children:o,open:i,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=w(n),p=r.useRef(null),[f,g]=r.useState(!1),[h,v]=(0,m.useControllableState)({prop:i,defaultProp:a??!1,onChange:s,caller:x});return(0,t.jsx)(c.Root,{...u,children:(0,t.jsx)(j,{scope:n,contentId:(0,d.useId)(),triggerRef:p,open:h,onOpenChange:v,onOpenToggle:r.useCallback(()=>v(e=>!e),[v]),hasCustomAnchor:f,onCustomAnchorAdd:r.useCallback(()=>g(!0),[]),onCustomAnchorRemove:r.useCallback(()=>g(!1),[]),modal:l,children:o})})};P.displayName=x;var _="PopoverAnchor",S=r.forwardRef((e,n)=>{let{__scopePopover:o,...i}=e,a=C(_,o),s=w(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=a;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(c.Anchor,{...s,...i,ref:n})});S.displayName=_;var O="PopoverTrigger",R=r.forwardRef((e,r)=>{let{__scopePopover:i,...a}=e,s=C(O,i),l=w(i),d=(0,o.useComposedRefs)(r,s.triggerRef),u=(0,t.jsx)(f.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":U(s.open),...a,ref:d,onClick:(0,n.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?u:(0,t.jsx)(c.Anchor,{asChild:!0,...l,children:u})});R.displayName=O;var k="PopoverPortal",[N,E]=y(k,{forceMount:void 0}),A=e=>{let{__scopePopover:r,forceMount:n,children:o,container:i}=e,a=C(k,r);return(0,t.jsx)(N,{scope:r,forceMount:n,children:(0,t.jsx)(p.Presence,{present:n||a.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:i,children:o})})})};A.displayName=k;var M="PopoverContent",T=r.forwardRef((e,r)=>{let n=E(M,e.__scopePopover),{forceMount:o=n.forceMount,...i}=e,a=C(M,e.__scopePopover);return(0,t.jsx)(p.Presence,{present:o||a.open,children:a.modal?(0,t.jsx)(z,{...i,ref:r}):(0,t.jsx)(F,{...i,ref:r})})});T.displayName=M;var I=(0,g.createSlot)("PopoverContent.RemoveScroll"),z=r.forwardRef((e,i)=>{let a=C(M,e.__scopePopover),s=r.useRef(null),l=(0,o.useComposedRefs)(i,s),d=r.useRef(!1);return r.useEffect(()=>{let e=s.current;if(e)return(0,h.hideOthers)(e)},[]),(0,t.jsx)(v.RemoveScroll,{as:I,allowPinchZoom:!0,children:(0,t.jsx)(D,{...e,ref:l,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),d.current||a.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;d.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),F=r.forwardRef((e,n)=>{let o=C(M,e.__scopePopover),i=r.useRef(!1),a=r.useRef(!1);return(0,t.jsx)(D,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||o.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(a.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),D=r.forwardRef((e,r)=>{let{__scopePopover:n,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:g,onInteractOutside:m,...h}=e,v=C(M,n),x=w(n);return(0,s.useFocusGuards)(),(0,t.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:d,children:(0,t.jsx)(a.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:g,onDismiss:()=>v.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":U(v.open),role:"dialog",id:v.contentId,...x,...h,ref:r,style:{...h.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),L="PopoverClose",$=r.forwardRef((e,r)=>{let{__scopePopover:o,...i}=e,a=C(L,o);return(0,t.jsx)(f.Primitive.button,{type:"button",...i,ref:r,onClick:(0,n.composeEventHandlers)(e.onClick,()=>a.onOpenChange(!1))})});$.displayName=L;var G=r.forwardRef((e,r)=>{let{__scopePopover:n,...o}=e,i=w(n);return(0,t.jsx)(c.Arrow,{...i,...o,ref:r})});function U(e){return e?"open":"closed"}G.displayName="PopoverArrow",e.s(["Anchor",0,S,"Arrow",0,G,"Close",0,$,"Content",0,T,"Popover",0,P,"PopoverAnchor",0,S,"PopoverArrow",0,G,"PopoverClose",0,$,"PopoverContent",0,T,"PopoverPortal",0,A,"PopoverTrigger",0,R,"Portal",0,A,"Root",0,P,"Trigger",0,R,"createPopoverScope",0,b],64406);var B=e.i(64406),B=B,q=e.i(31777);let H=B.Root,W=B.Trigger;B.Anchor;let V=r.forwardRef(({className:e,align:r="center",sideOffset:n=4,...o},i)=>(0,t.jsx)(B.Portal,{children:(0,t.jsx)(B.Content,{ref:i,align:r,sideOffset:n,className:(0,q.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));V.displayName=B.Content.displayName,e.s(["Popover",0,H,"PopoverContent",0,V,"PopoverTrigger",0,W],90382)},9749,e=>{"use strict";var t=e.i(96871),r=e.i(16539),n=e.i(23925),o=e.i(11345),i=e.i(76016);e.i(98026);var a=e.i(50728),s=e.i(31632),l=e.i(91461),d=e.i(86782),c=e.i(29847),u=e.i(81846),p=e.i(35364),f=e.i(90382),g=e.i(31777);e.s(["AgentModelPicker",0,function({initialAgentType:e,initialModel:m,onAgentModelChange:h,disabled:v,className:x,mode:y}){let{t:b}=(0,a.useTranslation)("web"),[w,j]=r.useState(!1),[C,P]=r.useState([]),[_,S]=r.useState(!0),[O,R]=r.useState(e),[k,N]=r.useState(m),[E,A]=r.useState(null),[M,T]=r.useState(0),[I,z]=r.useState(null);r.useEffect(()=>{(0,s.getAllAgentModels)().then(P).finally(()=>S(!1))},[]),r.useEffect(()=>{if(!w){let e=setTimeout(()=>{T(0),z(null)},150);return()=>clearTimeout(e)}},[w]);let F=async(e,t)=>{if(j(!1),e!==O||t!==k){if("override"===y){R(e),N(t),h?.(e,t);return}R(e),N(t),h?.(e,t),A(null);try{let r=await (0,l.updateAgentAndModel)(e,t||null);r.ok||(R(O),N(k),h?.(O,k),A(r.error??"Failed to save"))}catch{R(O),N(k),h?.(O,k),A("Failed to save")}}},D=(0,d.getAgentTypeIcon)(O),L=C.find(e=>e.agentType===O)?.label??O,$=k?(0,c.getModelMeta)(k).displayName||k:null,G=I?C.find(e=>e.agentType===I):null;return(0,t.jsxs)("div",{className:(0,g.cn)("flex flex-col gap-1",x),children:[(0,t.jsxs)(f.Popover,{open:w,onOpenChange:j,children:[(0,t.jsx)(f.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(p.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":w,"aria-invalid":!!E,"aria-describedby":E?"agent-model-picker-error":void 0,disabled:(v??!1)||_,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(D,{className:"h-4 w-4 shrink-0"}),_?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:L}),$?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:$})]}):null]})]})})}),(0,t.jsx)(f.PopoverContent,{className:"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===M?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),C.map(e=>{let r=(0,d.getAgentTypeIcon)(e.agentType),o=O===e.agentType,a=e.models.length>0;return(0,t.jsxs)("button",{type:"button",disabled:!e.installed,className:(0,g.cn)("flex w-full items-center gap-2.5 px-3 py-2 text-xs transition-colors",e.installed?"hover:bg-accent hover:text-accent-foreground cursor-pointer":"cursor-not-allowed opacity-60",o&&"bg-accent/50"),onClick:()=>{e.installed&&(a?(z(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>T(1))})):F(e.agentType,""))},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-start",children:e.label}),(0,t.jsx)(u.Badge,{variant:"outline",className:(0,g.cn)("px-1.5 py-0 text-[10px] leading-4 font-normal",e.installed?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:e.installed?b("settings.environment.installed"):b("settings.environment.notInstalled")}),o&&!a?(0,t.jsx)(n.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,a&&e.installed?(0,t.jsx)(i.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:G?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{T(0),setTimeout(()=>z(null),220)},children:[(0,t.jsx)(o.ChevronLeft,{className:"h-3.5 w-3.5"}),G.label]}),G.models.map(e=>{let r=O===G.agentType&&k===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,g.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors","hover:bg-accent hover:text-accent-foreground",r&&"bg-accent/50"),onClick:()=>F(G.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(n.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!E&&(0,t.jsx)("p",{id:"agent-model-picker-error",className:"text-destructive text-sm",role:"alert",children:E})]})}])},93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",0,t])},26370,27728,e=>{"use strict";var t=e.i(3645);let r=(0,t.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",0,r],26370);let n=(0,t.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);e.s(["ChevronUp",0,n],27728)},91992,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(16539);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50132,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:o,blurDataURL:i,objectFit:a}){let s=r?40*r:e,l=o?40*o:t,d=s&&l?`viewBox='0 0 ${s} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===a?"xMidYMid":"cover"===a?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},18299,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},43701,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(88976);let n=e.r(58349),o=e.r(50132),i=e.r(18299),a=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:r=!1,priority:c=!1,preload:u=!1,loading:p,className:f,quality:g,width:m,height:h,fill:v=!1,style:x,overrideSrc:y,onLoad:b,onLoadingComplete:w,placeholder:j="empty",blurDataURL:C,fetchPriority:P,decoding:_="async",layout:S,objectFit:O,objectPosition:R,lazyBoundary:k,lazyRoot:N,...E},A){var M;let T,I,z,{imgConf:F,showAltText:D,blurComplete:L,defaultLoader:$}=A,G=F||i.imageConfigDefault;if("allSizes"in G)T=G;else{let e=[...G.deviceSizes,...G.imageSizes].sort((e,t)=>e-t),t=G.deviceSizes.sort((e,t)=>e-t),r=G.qualities?.sort((e,t)=>e-t);T={...G,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===$)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let U=E.loader||$;delete E.loader,delete E.srcSet;let B="__next_img_default"in U;if(B){if("custom"===T.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=U;U=t=>{let{config:r,...n}=t;return e(n)}}if(S){"fill"===S&&(v=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(x={...x,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let q="",H=l(m),W=l(h);if((M=e)&&"object"==typeof M&&(s(M)||void 0!==M.src)){let t=s(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(I=t.blurWidth,z=t.blurHeight,C=C||t.blurDataURL,q=t.src,!v)if(H||W){if(H&&!W){let e=H/t.width;W=Math.round(t.height*e)}else if(!H&&W){let e=W/t.height;H=Math.round(t.width*e)}}else H=t.width,W=t.height}let V=!c&&!u&&("lazy"===p||void 0===p);(!(e="string"==typeof e?e:q)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,V=!1),T.unoptimized&&(r=!0),B&&!T.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=l(g),K=Object.assign(v?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:R}:{},D?{}:{color:"transparent"},x),J=L||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,o.getImageBlurSvg)({widthInt:H,heightInt:W,blurWidth:I,blurHeight:z,blurDataURL:C||"",objectFit:K.objectFit})}")`:`url("${j}")`,Q=a.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Y=J?{backgroundSize:Q,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:J}:{},Z=function({config:e,src:t,unoptimized:r,width:o,quality:i,sizes:a,loader:s}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,n.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let n=new URLSearchParams(t.slice(r+1));n.get("dpl")||(n.append("dpl",e),t=t.slice(0,r)+"?"+n.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:d}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,o=[];for(let e;e=r.exec(n);)o.push(parseInt(e[2]));if(o.length){let r=.01*Math.min(...o);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,o,a),c=l.length-1;return{sizes:a||"w"!==d?a:"100vw",srcSet:l.map((r,n)=>`${s({config:e,src:t,quality:i,width:r})} ${"w"===d?r:n+1}${d}`).join(", "),src:s({config:e,src:t,quality:i,width:l[c]})}}({config:T,src:e,unoptimized:r,width:H,quality:X,sizes:t,loader:U}),ee=V?"lazy":p;return{props:{...E,loading:ee,fetchPriority:P,width:H,height:W,decoding:_,className:f,style:{...K,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:y||Z.src},meta:{unoptimized:r,preload:u||c,placeholder:j,fill:v}}}},5,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(16539),o="u"<typeof window,i=o?()=>{}:n.useLayoutEffect,a=o?()=>{}:n.useEffect;function s(e){let{headManager:t,reduceComponentsToState:r}=e;function s(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return o&&(t?.mountedInstances?.add(e.children),s()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},21340,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},defaultHead:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(81258),a=e.r(44066),s=e.r(96871),l=a._(e.r(16539)),d=i._(e.r(5)),c=e.r(89573);function u(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(88976);let f=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,n,o;return e.reduce(p,[]).reverse().concat(u().reverse()).filter((t=new Set,r=new Set,n=new Set,o={},e=>{let i=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?i=!1:n.add(r);else{let t=e.props[r],n=o[r]||new Set;("name"!==r||!a)&&n.has(t)?i=!1:(n.add(t),o[r]=n)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(c.HeadManagerContext);return(0,s.jsx)(d.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99387,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let n=e.r(81258)._(e.r(16539)),o=e.r(18299),i=n.default.createContext(o.imageConfigDefault)},76614,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(81258)._(e.r(16539)).default.createContext(null)},23835,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},92748,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(23835),o=e.r(58349);function i({config:e,src:t,width:r,quality:a}){let s=(0,o.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),n=r.get("dpl");if(n){s=n,r.delete("dpl");let o=r.toString();t=t.slice(0,e)+(o?"?"+o:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,n.findClosestQuality)(a,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&s?`&dpl=${s}`:""}`}i.__next_img_default=!0;let a=i},15262,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return b}});let n=e.r(81258),o=e.r(44066),i=e.r(96871),a=o._(e.r(16539)),s=n._(e.r(70309)),l=n._(e.r(21340)),d=e.r(43701),c=e.r(18299),u=e.r(99387);e.r(88976);let p=e.r(76614),f=n._(e.r(92748)),g=e.r(91992),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,o,i,a){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&o(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,o=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>o,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{o=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function v(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let x=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:o,decoding:s,className:l,style:d,fetchPriority:c,placeholder:u,loading:p,unoptimized:f,fill:m,onLoadRef:x,onLoadingCompleteRef:y,setBlurComplete:b,setShowAltText:w,sizesInput:j,onLoad:C,onError:P,..._},S)=>{let O=(0,a.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,u,x,y,b,f,j))},[e,u,x,y,b,P,f,j]),R=(0,g.useMergedRef)(S,O);return(0,i.jsx)("img",{..._,...v(c),loading:p,width:o,height:n,decoding:s,"data-nimg":m?"fill":"1",className:l,style:d,sizes:r,srcSet:t,src:e,ref:R,onLoad:e=>{h(e.currentTarget,u,x,y,b,f,j)},onError:e=>{w(!0),"empty"!==u&&b(!0),P&&P(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...v(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,r),null):(0,i.jsx)(l.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let b=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(p.RouterContext),n=(0,a.useContext)(u.ImageConfigContext),o=(0,a.useMemo)(()=>{let e=m||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),o=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:o,localPatterns:"u"<typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:s,onLoadingComplete:l}=e,g=(0,a.useRef)(s);(0,a.useEffect)(()=>{g.current=s},[s]);let h=(0,a.useRef)(l);(0,a.useEffect)(()=>{h.current=l},[l]);let[v,b]=(0,a.useState)(!1),[w,j]=(0,a.useState)(!1),{props:C,meta:P}=(0,d.getImgProps)(e,{defaultLoader:f.default,imgConf:o,blurComplete:v,showAltText:w});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(x,{...C,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:b,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.preload?(0,i.jsx)(y,{isAppRouter:!r,imgAttributes:C}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18473,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return c},getImageProps:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(81258),a=e.r(43701),s=e.r(15262),l=i._(e.r(92748));function d(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=s.Image},30342,(e,t,r)=>{t.exports=e.r(18473)},86782,e=>{"use strict";var t=e.i(96871),r=e.i(30342),n=e.i(31777);function o(e,o){function i({className:a}){return(0,t.jsx)(r.default,{src:e,alt:o,width:24,height:24,className:(0,n.cn)("rounded-sm object-contain",a)})}return i.displayName=`BrandIcon(${o})`,i}function i(e){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}function a({className:e,...r}){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:(0,n.cn)("h-6 w-6",e),...r,children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:"dev-flask-grad",x1:"6",y1:"22",x2:"18",y2:"8",gradientUnits:"userSpaceOnUse",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:"#8B5CF6"}),(0,t.jsx)("stop",{offset:"50%",stopColor:"#EC4899"}),(0,t.jsx)("stop",{offset:"100%",stopColor:"#F59E0B"})]})}),(0,t.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",fill:"url(#dev-flask-grad)",opacity:"0.9"}),(0,t.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",stroke:"url(#dev-flask-grad)",strokeWidth:"1.5",fill:"none"}),(0,t.jsx)("circle",{cx:"10",cy:"14",r:"1.2",fill:"white",opacity:"0.7"}),(0,t.jsx)("circle",{cx:"13.5",cy:"16",r:"0.8",fill:"white",opacity:"0.5"}),(0,t.jsx)("circle",{cx:"11.5",cy:"17.5",r:"0.6",fill:"white",opacity:"0.4"}),(0,t.jsx)("path",{d:"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z",fill:"#F59E0B"})]})}a.displayName="DevAgentIcon";let s={"claude-code":o("/icons/agents/claude-ai-icon.svg","Claude Code"),"codex-cli":o("/icons/agents/openai.svg","Codex CLI"),cursor:o("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":o("/icons/agents/gemini-cli.jpeg","Gemini CLI"),aider:o("/icons/agents/aider.png","Aider"),continue:o("/icons/agents/continue.jpeg","Continue"),dev:a};e.s(["agentTypeLabels",0,{"claude-code":"Claude Code","codex-cli":"Codex CLI",cursor:"Cursor","gemini-cli":"Gemini CLI",aider:"Aider",continue:"Continue",dev:"Demo"},"getAgentTypeIcon",0,function(e){return e&&e in s?s[e]:i}])},29847,e=>{"use strict";let t={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},r={displayName:"",description:""};e.s(["getModelMeta",0,function(e){let n=t[e];return n||{...r,displayName:e.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase())}}])},11345,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],11345)},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],76016)},31632,91461,e=>{"use strict";var t=e.i(96976);let r=(0,t.createServerReference)("0012991b94f5966fb26ba21e1517f584d8a3aee034",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",0,r],31632);let n=(0,t.createServerReference)("60d25130a2a64ca7b81fc5f6c72ec82f18e6ddb96a",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",0,n],91461)},99105,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],99105)},48109,e=>{"use strict";let t=(0,e.i(3645).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],48109)},32494,e=>{"use strict";let t=(0,e.i(3645).default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);e.s(["Globe",0,t],32494)}]);