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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/apis/json-schema/LiteLLMProxyConfig.yaml +14 -0
  3. package/apis/json-schema/Settings.yaml +3 -0
  4. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  5. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.d.ts +46 -0
  7. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.d.ts.map +1 -0
  8. package/dist/packages/core/src/application/ports/output/services/plugin-marketplace.interface.js +12 -0
  9. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.d.ts +16 -0
  10. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.d.ts.map +1 -0
  11. package/dist/packages/core/src/application/use-cases/plugins/add-marketplace.use-case.js +34 -0
  12. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.d.ts +24 -0
  13. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.d.ts.map +1 -0
  14. package/dist/packages/core/src/application/use-cases/plugins/fetch-plugin-catalog.use-case.js +52 -0
  15. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.d.ts +17 -0
  16. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.d.ts.map +1 -0
  17. package/dist/packages/core/src/application/use-cases/plugins/install-plugin.use-case.js +33 -0
  18. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.d.ts +17 -0
  19. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.d.ts.map +1 -0
  20. package/dist/packages/core/src/application/use-cases/plugins/toggle-plugin.use-case.js +33 -0
  21. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.d.ts +16 -0
  22. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.d.ts.map +1 -0
  23. package/dist/packages/core/src/application/use-cases/plugins/uninstall-plugin.use-case.js +33 -0
  24. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  25. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
  26. package/dist/packages/core/src/domain/generated/output.d.ts +25 -0
  27. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  29. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +13 -0
  30. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
  31. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +12 -0
  32. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
  33. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +22 -0
  34. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  35. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +18 -0
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.d.ts +14 -0
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.d.ts.map +1 -0
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-litellm-proxy.js +28 -0
  40. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.d.ts +4 -0
  41. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.d.ts.map +1 -0
  42. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/index.js +3 -0
  43. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.d.ts +78 -0
  44. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.d.ts.map +1 -0
  45. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.schema.js +46 -0
  46. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.d.ts +29 -0
  47. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.d.ts.map +1 -0
  48. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.service.js +147 -0
  49. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.d.ts +11 -0
  50. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.d.ts.map +1 -0
  51. package/dist/packages/core/src/infrastructure/services/plugin-marketplace/plugin-marketplace.validators.js +47 -0
  52. package/dist/src/presentation/web/app/actions/add-marketplace.d.ts +5 -0
  53. package/dist/src/presentation/web/app/actions/add-marketplace.d.ts.map +1 -0
  54. package/dist/src/presentation/web/app/actions/add-marketplace.js +11 -0
  55. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts +5 -0
  56. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.d.ts.map +1 -0
  57. package/dist/src/presentation/web/app/actions/fetch-plugin-catalog.js +11 -0
  58. package/dist/src/presentation/web/app/actions/install-plugin.d.ts +5 -0
  59. package/dist/src/presentation/web/app/actions/install-plugin.d.ts.map +1 -0
  60. package/dist/src/presentation/web/app/actions/install-plugin.js +11 -0
  61. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts +5 -0
  62. package/dist/src/presentation/web/app/actions/toggle-plugin.d.ts.map +1 -0
  63. package/dist/src/presentation/web/app/actions/toggle-plugin.js +11 -0
  64. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts +5 -0
  65. package/dist/src/presentation/web/app/actions/uninstall-plugin.d.ts.map +1 -0
  66. package/dist/src/presentation/web/app/actions/uninstall-plugin.js +11 -0
  67. package/dist/src/presentation/web/app/plugins/page.d.ts +2 -0
  68. package/dist/src/presentation/web/app/plugins/page.d.ts.map +1 -0
  69. package/dist/src/presentation/web/app/plugins/page.js +23 -0
  70. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
  72. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts +9 -0
  73. package/dist/src/presentation/web/components/features/plugins/plugin-card.d.ts.map +1 -0
  74. package/dist/src/presentation/web/components/features/plugins/plugin-card.js +15 -0
  75. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts +17 -0
  76. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.d.ts.map +1 -0
  77. package/dist/src/presentation/web/components/features/plugins/plugin-card.stories.js +60 -0
  78. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts +11 -0
  79. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.d.ts.map +1 -0
  80. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.js +33 -0
  81. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts +18 -0
  82. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.d.ts.map +1 -0
  83. package/dist/src/presentation/web/components/features/plugins/plugin-detail-drawer.stories.js +51 -0
  84. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts +6 -0
  85. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.d.ts.map +1 -0
  86. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.js +115 -0
  87. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts +12 -0
  88. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.d.ts.map +1 -0
  89. package/dist/src/presentation/web/components/features/plugins/plugins-page-client.stories.js +24 -0
  90. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +3 -3
  91. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  92. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +23 -102
  93. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +2 -3
  94. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +18 -22
  96. package/dist/src/presentation/web/components/features/settings/ci-settings-section.d.ts.map +1 -1
  97. package/dist/src/presentation/web/components/features/settings/ci-settings-section.js +14 -5
  98. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -1
  99. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +14 -4
  100. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +9 -3
  101. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -1
  102. package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +75 -65
  103. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
  104. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +20 -18
  105. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.d.ts.map +1 -1
  106. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.js +1 -1
  107. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +3 -3
  108. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  109. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +53 -50
  110. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  111. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +27 -25
  112. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.d.ts.map +1 -1
  113. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.js +3 -3
  114. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts +6 -0
  115. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.d.ts.map +1 -0
  116. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.js +76 -0
  117. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts +15 -0
  118. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.d.ts.map +1 -0
  119. package/dist/src/presentation/web/components/features/settings/litellm-proxy-settings-section.stories.js +29 -0
  120. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +3 -3
  121. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  122. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +64 -47
  123. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  124. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +32 -24
  125. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  126. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +29 -378
  127. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +2 -0
  128. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  129. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +14 -0
  130. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts +8 -8
  131. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts.map +1 -1
  132. package/dist/src/presentation/web/components/features/settings/settings-section-utils.js +3 -6
  133. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
  134. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
  135. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +7 -7
  136. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.d.ts.map +1 -1
  137. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.js +1 -1
  138. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +3 -3
  139. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  140. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +118 -165
  141. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
  142. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  143. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +26 -64
  144. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  145. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  146. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  147. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  148. package/dist/src/presentation/web/components/ui/tooltip.d.ts.map +1 -1
  149. package/dist/src/presentation/web/components/ui/tooltip.js +3 -3
  150. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  151. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  152. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  153. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  154. package/dist/src/presentation/web/lib/feature-flags.js +6 -0
  155. package/dist/translations/ar/web.json +40 -2
  156. package/dist/translations/de/web.json +40 -2
  157. package/dist/translations/en/web.json +40 -2
  158. package/dist/translations/es/web.json +40 -2
  159. package/dist/translations/fr/web.json +40 -2
  160. package/dist/translations/he/web.json +40 -2
  161. package/dist/translations/pt/web.json +40 -2
  162. package/dist/translations/ru/web.json +40 -2
  163. package/dist/tsconfig.build.tsbuildinfo +1 -1
  164. package/package.json +1 -1
  165. package/web/.next/BUILD_ID +1 -1
  166. package/web/.next/app-path-routes-manifest.json +1 -0
  167. package/web/.next/build-manifest.json +3 -3
  168. package/web/.next/fallback-build-manifest.json +3 -3
  169. package/web/.next/prerender-manifest.json +3 -3
  170. package/web/.next/required-server-files.js +3 -3
  171. package/web/.next/required-server-files.json +3 -3
  172. package/web/.next/routes-manifest.json +6 -0
  173. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  174. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  175. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  177. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  178. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  179. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  180. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  181. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  182. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  183. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  184. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  185. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  186. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  189. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  190. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  191. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  192. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  193. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  195. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  196. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  197. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  198. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  199. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  201. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  202. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  203. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  204. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  205. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  206. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  207. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  208. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  209. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  210. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  211. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  212. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  213. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  214. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  215. package/web/.next/server/app/_global-error.html +1 -1
  216. package/web/.next/server/app/_global-error.rsc +1 -1
  217. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  218. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  219. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  220. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  221. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  222. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  223. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  224. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  226. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  227. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  228. package/web/.next/server/app/api/graph-data/route.js +1 -1
  229. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  230. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  231. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  232. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  233. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  234. package/web/.next/server/app/plugins/page/app-paths-manifest.json +3 -0
  235. package/web/.next/server/app/plugins/page/build-manifest.json +18 -0
  236. package/web/.next/server/app/plugins/page/next-font-manifest.json +10 -0
  237. package/web/.next/server/app/plugins/page/react-loadable-manifest.json +8 -0
  238. package/web/.next/server/app/plugins/page/server-reference-manifest.json +185 -0
  239. package/web/.next/server/app/plugins/page.js +17 -0
  240. package/web/.next/server/app/plugins/page.js.map +5 -0
  241. package/web/.next/server/app/plugins/page.js.nft.json +1 -0
  242. package/web/.next/server/app/plugins/page_client-reference-manifest.js +3 -0
  243. package/web/.next/server/app/settings/page/server-reference-manifest.json +34 -22
  244. package/web/.next/server/app/settings/page.js +1 -1
  245. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  246. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  248. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  249. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  251. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  252. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  253. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  254. package/web/.next/server/app/version/page.js.nft.json +1 -1
  255. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app-paths-manifest.json +1 -0
  257. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  258. package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js → [root-of-the-server]__07suer1._.js} +2 -2
  259. package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js → [root-of-the-server]__0sgzo7y._.js} +2 -2
  260. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  261. package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js → [root-of-the-server]__0uxlr84._.js} +2 -2
  262. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  263. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  265. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  266. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  267. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  268. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js +4 -0
  269. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0y6lfp8.js.map +1 -0
  270. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  271. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  272. package/web/.next/server/chunks/ssr/{_04s_q5r._.js → 12k._sonner_dist_index_mjs_0-vmpk5._.js} +2 -2
  273. package/web/.next/server/chunks/ssr/12k._sonner_dist_index_mjs_0-vmpk5._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0rvrr1j._.js → [root-of-the-server]__0.5ojmt._.js} +2 -2
  275. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js +3 -0
  277. package/web/.next/server/chunks/ssr/[root-of-the-server]__04h~gav._.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  279. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  280. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  281. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  283. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  285. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  286. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  287. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  288. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js +3 -0
  289. package/web/.next/server/chunks/ssr/[root-of-the-server]__0~v1~b9._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  291. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  293. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  294. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  295. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/{_00u~.41._.js → _03x4h9e._.js} +2 -2
  297. package/web/.next/server/chunks/ssr/_03x4h9e._.js.map +1 -0
  298. package/web/.next/server/chunks/ssr/{_0~0jkp_._.js → _05fk0a4._.js} +2 -2
  299. package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +1 -0
  300. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  301. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  302. package/web/.next/server/chunks/ssr/{_0r04xhw._.js → _07u.4jr._.js} +2 -2
  303. package/web/.next/server/chunks/ssr/{_0r04xhw._.js.map → _07u.4jr._.js.map} +1 -1
  304. package/web/.next/server/chunks/ssr/_083k45~._.js +3 -0
  305. package/web/.next/server/chunks/ssr/_083k45~._.js.map +1 -0
  306. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  307. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  308. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  309. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  311. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  313. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/_0i~-084._.js +3 -0
  315. package/web/.next/server/chunks/ssr/_0i~-084._.js.map +1 -0
  316. package/web/.next/server/chunks/ssr/_0kt18~b._.js +3 -0
  317. package/web/.next/server/chunks/ssr/_0kt18~b._.js.map +1 -0
  318. package/web/.next/server/chunks/ssr/{_08_079y._.js → _0mj-tmi._.js} +2 -2
  319. package/web/.next/server/chunks/ssr/{_08_079y._.js.map → _0mj-tmi._.js.map} +1 -1
  320. package/web/.next/server/chunks/ssr/{_0hw~zvl._.js → _0o_oaao._.js} +2 -2
  321. package/web/.next/server/chunks/ssr/_0o_oaao._.js.map +1 -0
  322. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  323. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  324. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  325. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/_0rcx2-c._.js +9 -0
  327. package/web/.next/server/chunks/ssr/_0rcx2-c._.js.map +1 -0
  328. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  329. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/_0tcccbb._.js +1 -1
  331. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/_0tfz1v_._.js +3 -0
  333. package/web/.next/server/chunks/ssr/_0tfz1v_._.js.map +1 -0
  334. package/web/.next/server/chunks/ssr/{_0txr945._.js → _0u3d8.n._.js} +2 -2
  335. package/web/.next/server/chunks/ssr/_0u3d8.n._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  337. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  338. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  339. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  340. package/web/.next/server/chunks/ssr/{_09r54oy._.js → _0ygafoy._.js} +2 -2
  341. package/web/.next/server/chunks/ssr/{_09r54oy._.js.map → _0ygafoy._.js.map} +1 -1
  342. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  343. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  345. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  346. package/web/.next/server/chunks/ssr/_10joy2y._.js +3 -0
  347. package/web/.next/server/chunks/ssr/_10joy2y._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  349. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  350. package/web/.next/server/chunks/ssr/_12uy.45._.js +3 -0
  351. package/web/.next/server/chunks/ssr/_12uy.45._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +3 -0
  353. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  355. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  357. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  358. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  359. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  360. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  361. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  362. package/web/.next/server/middleware-build-manifest.js +3 -3
  363. package/web/.next/server/next-font-manifest.js +1 -1
  364. package/web/.next/server/next-font-manifest.json +3 -0
  365. package/web/.next/server/pages/500.html +1 -1
  366. package/web/.next/server/server-reference-manifest.js +1 -1
  367. package/web/.next/server/server-reference-manifest.json +187 -61
  368. package/web/.next/static/chunks/{0_xww9bsde~1x.js → 01~u_q8i2zgcl.js} +2 -2
  369. package/web/.next/static/chunks/{06nsv-_ec9ehn.js → 025ml1.quzhqf.js} +1 -1
  370. package/web/.next/static/chunks/{0fg~vc93spa9c.js → 07gal-~-zwagj.js} +1 -1
  371. package/web/.next/static/chunks/07le1mov593z9.js +1 -0
  372. package/web/.next/static/chunks/09ungqk9~va40.js +1 -0
  373. package/web/.next/static/chunks/0ab36sfvo.9ai.js +1 -0
  374. package/web/.next/static/chunks/0aq9-lg.5r.nk.js +5 -0
  375. package/web/.next/static/chunks/{0in4l8mne5y~_.js → 0b2pi58fg3lt3.js} +1 -1
  376. package/web/.next/static/chunks/{0cv09-g0prv4o.js → 0cvyulutrctst.js} +1 -1
  377. package/web/.next/static/chunks/0eqi_uuiepxhf.js +1 -0
  378. package/web/.next/static/chunks/{0v~n9z6b639zm.js → 0jwq.mr-.ltps.js} +1 -1
  379. package/web/.next/static/chunks/0k8m.qcahm63g.js +1 -0
  380. package/web/.next/static/chunks/0lc0x8kcu46ae.js +1 -0
  381. package/web/.next/static/chunks/0lz-oq74e_ciu.js +1 -0
  382. package/web/.next/static/chunks/0nkujbu62z1jl.js +7 -0
  383. package/web/.next/static/chunks/0oadtfnesfdqc.js +1 -0
  384. package/web/.next/static/chunks/{0ygtupas8pxdi.js → 0uryz2ek77e2a.js} +1 -1
  385. package/web/.next/static/chunks/0v7r7y~3e~oo6.css +1 -0
  386. package/web/.next/static/chunks/{0hg8qgtv~kuys.js → 0xo.hi4px83w2.js} +1 -1
  387. package/web/.next/static/chunks/{0_v4t6gzx.332.js → 0xr0p_ynap2~d.js} +1 -1
  388. package/web/.next/static/chunks/0xtzpbc5mm5z7.js +5 -0
  389. package/web/.next/static/chunks/{133q8d69p6cl0.js → 0~-kk8o121_13.js} +1 -1
  390. package/web/.next/static/chunks/{078lp287u~c~b.js → 16k169s1a_8ru.js} +1 -1
  391. package/web/.next/static/chunks/{17c31c1biwfyi.js → 17dp77weos4ao.js} +1 -1
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qxd563._.js +0 -3
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qxd563._.js.map +0 -1
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +0 -1
  395. package/web/.next/server/chunks/ssr/_00u~.41._.js.map +0 -1
  396. package/web/.next/server/chunks/ssr/_04s_q5r._.js.map +0 -1
  397. package/web/.next/server/chunks/ssr/_0dy8.0k._.js +0 -3
  398. package/web/.next/server/chunks/ssr/_0dy8.0k._.js.map +0 -1
  399. package/web/.next/server/chunks/ssr/_0gdghcr._.js +0 -3
  400. package/web/.next/server/chunks/ssr/_0gdghcr._.js.map +0 -1
  401. package/web/.next/server/chunks/ssr/_0hw~zvl._.js.map +0 -1
  402. package/web/.next/server/chunks/ssr/_0l2~~pi._.js +0 -3
  403. package/web/.next/server/chunks/ssr/_0l2~~pi._.js.map +0 -1
  404. package/web/.next/server/chunks/ssr/_0mi5qj~._.js +0 -3
  405. package/web/.next/server/chunks/ssr/_0mi5qj~._.js.map +0 -1
  406. package/web/.next/server/chunks/ssr/_0n.magx._.js +0 -3
  407. package/web/.next/server/chunks/ssr/_0n.magx._.js.map +0 -1
  408. package/web/.next/server/chunks/ssr/_0txr945._.js.map +0 -1
  409. package/web/.next/server/chunks/ssr/_0y8u4.e._.js +0 -9
  410. package/web/.next/server/chunks/ssr/_0y8u4.e._.js.map +0 -1
  411. package/web/.next/server/chunks/ssr/_0~0jkp_._.js.map +0 -1
  412. package/web/.next/static/chunks/0-ud~1jj7chzu.js +0 -7
  413. package/web/.next/static/chunks/01znjuvi5t9~q.js +0 -5
  414. package/web/.next/static/chunks/033sl_l5o3uo8.css +0 -1
  415. package/web/.next/static/chunks/04r9m_5p953mf.js +0 -1
  416. package/web/.next/static/chunks/07i3-aamszsoh.js +0 -1
  417. package/web/.next/static/chunks/0ee1d3_y40g9f.js +0 -1
  418. package/web/.next/static/chunks/0n3kuj7t_-jzp.js +0 -1
  419. package/web/.next/static/chunks/0pt-d18f7zxvv.js +0 -1
  420. package/web/.next/static/chunks/12pd180jp8zu..js +0 -5
  421. package/web/.next/static/chunks/13fcwhkw7dle2.js +0 -1
  422. package/web/.next/static/chunks/15mks7_3venc1.js +0 -1
  423. /package/web/.next/server/chunks/{[root-of-the-server]__0zu_byw._.js.map → [root-of-the-server]__07suer1._.js.map} +0 -0
  424. /package/web/.next/server/chunks/{[root-of-the-server]__0u1jyv9._.js.map → [root-of-the-server]__0sgzo7y._.js.map} +0 -0
  425. /package/web/.next/server/chunks/{[root-of-the-server]__08cpfre._.js.map → [root-of-the-server]__0uxlr84._.js.map} +0 -0
  426. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_buildManifest.js +0 -0
  427. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_clientMiddlewareManifest.js +0 -0
  428. /package/web/.next/static/{LQMB6QAutWzPQnLUZG96y → vD7xT4_iwKDhgj4-rr637}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/deployment-id.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/segment.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/invariant-error.ts","../../../../../../../node_modules/.pnpm/next%4016.2.2_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.59.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/download.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/paperclip.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/sticky-note.ts","../../../../../../../src/presentation/web/components/ui/textarea.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/file.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/file-text.ts","../../../../../../../src/presentation/web/components/common/attachment-chip/attachment-chip.tsx","../../../../../../../src/presentation/web/components/common/attachment-card/attachment-card.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/image.ts"],"sourcesContent":["import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","let deploymentId: string | undefined\n\nif (typeof window !== 'undefined') {\n deploymentId = document.documentElement.dataset.dplId\n // Immediately remove the attribute to prevent hydration errors (the dplId was inserted into the\n // HTML only), React isn't aware of it at all.\n delete document.documentElement.dataset.dplId\n} else {\n // Client side: replaced with globalThis.NEXT_DEPLOYMENT_ID\n // Server side: left as is or replaced with a string or replaced with false\n deploymentId = process.env.NEXT_DEPLOYMENT_ID || undefined\n}\n\nexport function getDeploymentId(): string | undefined {\n return deploymentId\n}\n\nexport function getDeploymentIdQuery(ampersand = false): string {\n let id = getDeploymentId()\n if (id) {\n return `${ampersand ? '&' : '?'}dpl=${id}`\n }\n return ''\n}\n\nexport function getAssetToken(): string | undefined {\n return (\n process.env.NEXT_IMMUTABLE_ASSET_TOKEN || process.env.NEXT_DEPLOYMENT_ID\n )\n}\n\nexport function getAssetTokenQuery(ampersand = false): string {\n let id = getAssetToken()\n if (id) {\n return `${ampersand ? '&' : '?'}dpl=${id}`\n }\n return ''\n}\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","export function createPromiseWithResolvers<T>(): PromiseWithResolvers<T> {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike<T>) => void\n let reject: (reason: any) => void\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 15V3', key: 'm9g1x1' }],\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4', key: 'ih7n3h' }],\n ['path', { d: 'm7 10 5 5 5-5', key: 'brsn70' }],\n];\n\n/**\n * @component @name Download\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTVWMyIgLz4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cGF0aCBkPSJtNyAxMCA1IDUgNS01IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Download = createLucideIcon('download', __iconNode);\n\nexport default Download;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551',\n key: '1miecu',\n },\n ],\n];\n\n/**\n * @component @name Paperclip\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgNi04LjQxNCA4LjU4NmEyIDIgMCAwIDAgMi44MjkgMi44MjlsOC40MTQtOC41ODZhNCA0IDAgMSAwLTUuNjU3LTUuNjU3bC04LjM3OSA4LjU1MWE2IDYgMCAxIDAgOC40ODUgOC40ODVsOC4zNzktOC41NTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Paperclip = createLucideIcon('paperclip', __iconNode);\n\nexport default Paperclip;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z',\n key: '1dfntj',\n },\n ],\n ['path', { d: 'M15 3v5a1 1 0 0 0 1 1h5', key: '6s6qgf' }],\n];\n\n/**\n * @component @name StickyNote\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgOWEyLjQgMi40IDAgMCAwLS43MDYtMS43MDZsLTMuNTg4LTMuNTg4QTIuNCAyLjQgMCAwIDAgMTUgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yeiIgLz4KICA8cGF0aCBkPSJNMTUgM3Y1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sticky-note\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst StickyNote = createLucideIcon('sticky-note', __iconNode);\n\nexport default StickyNote;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n];\n\n/**\n * @component @name File\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst File = createLucideIcon('file', __iconNode);\n\nexport default File;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n ['path', { d: 'M10 9H8', key: 'b1mrlr' }],\n ['path', { d: 'M16 13H8', key: 't4e002' }],\n ['path', { d: 'M16 17H8', key: 'z1uh3a' }],\n];\n\n/**\n * @component @name FileText\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgOUg4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxM0g4IiAvPgogIDxwYXRoIGQ9Ik0xNiAxN0g4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-text\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileText = createLucideIcon('file-text', __iconNode);\n\nexport default FileText;\n","/* eslint-disable @next/next/no-img-element -- Local file preview requires raw <img>, not next/image */\n'use client';\n\nimport { X, LoaderCircleIcon, DownloadIcon, StickyNoteIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { Dialog, DialogTrigger, DialogContent, DialogTitle } from '@/components/ui/dialog';\nimport { Textarea } from '@/components/ui/textarea';\nimport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@/components/ui/tooltip';\nimport { VisuallyHidden } from 'radix-ui';\nimport {\n formatFileSize,\n getFileIcon,\n getFileIconColor,\n} from '@/components/common/attachment-card/attachment-card';\n\nexport interface AttachmentChipProps {\n name: string;\n size: number;\n mimeType: string;\n path: string;\n onRemove: () => void;\n loading?: boolean;\n disabled?: boolean;\n /** Optional notes attached to this image */\n notes?: string;\n /** Callback when user edits notes in the preview modal */\n onNotesChange?: (notes: string) => void;\n}\n\nconst IMAGE_EXTS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.ico', '.bmp']);\n\nfunction isImage(name: string): boolean {\n const dot = name.lastIndexOf('.');\n return dot >= 0 && IMAGE_EXTS.has(name.slice(dot).toLowerCase());\n}\n\nfunction previewUrl(path: string, mimeType: string): string {\n const params = new URLSearchParams({ path, mimeType });\n return `/api/attachments/preview?${params.toString()}`;\n}\n\nfunction getExtension(filename: string): string {\n const dot = filename.lastIndexOf('.');\n return dot >= 0 ? filename.slice(dot).toLowerCase() : '';\n}\n\nexport function AttachmentChip({\n name,\n size,\n mimeType,\n path,\n onRemove,\n loading = false,\n disabled = false,\n notes,\n onNotesChange,\n}: AttachmentChipProps) {\n const ext = getExtension(name);\n const Icon = getFileIcon(ext);\n const iconColorClass = getFileIconColor(ext);\n const imageFile = isImage(name);\n\n if (loading) {\n return (\n <div className=\"flex h-12 w-12 items-center justify-center rounded-md border\">\n <LoaderCircleIcon className=\"text-muted-foreground h-5 w-5 animate-spin\" />\n </div>\n );\n }\n\n if (imageFile) {\n const thumbnail = (\n <button type=\"button\" className=\"relative block cursor-pointer rounded-md\">\n <img\n src={previewUrl(path, mimeType)}\n alt={name}\n title={name}\n className=\"h-12 w-12 rounded-md border object-cover transition-opacity hover:opacity-80\"\n />\n {notes ? (\n <span className=\"ring-background absolute -right-1 -bottom-1 flex h-4 w-4 items-center justify-center rounded-full bg-amber-500 text-white shadow-sm ring-2\">\n <StickyNoteIcon className=\"h-2.5 w-2.5\" />\n </span>\n ) : null}\n </button>\n );\n\n return (\n <TooltipProvider delayDuration={200}>\n <Dialog>\n <Tooltip>\n <div className=\"group relative\">\n <TooltipTrigger asChild>\n <DialogTrigger asChild>{thumbnail}</DialogTrigger>\n </TooltipTrigger>\n {!disabled && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex\"\n aria-label={`Remove ${name}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </div>\n {notes ? (\n <TooltipContent\n side=\"bottom\"\n className=\"max-w-[220px] border border-amber-200 bg-amber-50 text-amber-950 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100\"\n >\n <p className=\"line-clamp-3 text-xs leading-snug\">{notes}</p>\n </TooltipContent>\n ) : null}\n </Tooltip>\n <DialogContent className=\"max-w-3xl gap-0 overflow-hidden border-0 p-0 [&>button:last-child]:!cursor-pointer [&>button:last-child]:!rounded-full [&>button:last-child]:!bg-black/70 [&>button:last-child]:!p-1.5 [&>button:last-child]:!text-white [&>button:last-child]:!opacity-100 [&>button:last-child]:!shadow-lg [&>button:last-child]:!backdrop-blur-md [&>button:last-child]:hover:!bg-black/90\">\n <VisuallyHidden.Root>\n <DialogTitle>Preview: {name}</DialogTitle>\n </VisuallyHidden.Root>\n <div className=\"relative bg-black/90\">\n <img\n src={previewUrl(path, mimeType)}\n alt={name}\n className=\"h-auto max-h-[70vh] w-full object-contain\"\n />\n </div>\n <div className=\"bg-background flex flex-col gap-2 px-4 py-3\">\n <div className=\"flex items-center gap-3\">\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-sm font-medium\">{name}</span>\n <span className=\"text-muted-foreground text-xs\">{formatFileSize(size)}</span>\n </div>\n <a\n href={previewUrl(path, mimeType)}\n download={name}\n className=\"text-muted-foreground hover:text-foreground shrink-0 cursor-pointer rounded p-1.5 transition-colors\"\n aria-label={`Download ${name}`}\n >\n <DownloadIcon className=\"h-4 w-4\" />\n </a>\n </div>\n {onNotesChange ? (\n <Textarea\n placeholder=\"Add notes about this image…\"\n value={notes ?? ''}\n onChange={(e) => onNotesChange(e.target.value)}\n rows={2}\n className=\"resize-none text-sm\"\n aria-label=\"Image notes\"\n />\n ) : notes ? (\n <p className=\"text-muted-foreground text-sm\">{notes}</p>\n ) : null}\n </div>\n </DialogContent>\n </Dialog>\n </TooltipProvider>\n );\n }\n\n return (\n <div className=\"group relative flex items-center gap-2 rounded-full border py-1 ps-2 pe-3\">\n <div\n className={cn(\n 'flex h-6 w-6 shrink-0 items-center justify-center rounded-full',\n iconColorClass\n )}\n >\n <Icon className=\"h-3 w-3\" />\n </div>\n <span className=\"max-w-[120px] truncate text-sm\">{name}</span>\n <span className=\"text-muted-foreground text-xs\">{formatFileSize(size)}</span>\n {!disabled && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"absolute -top-1.5 -right-1.5 hidden h-5 w-5 cursor-pointer items-center justify-center rounded-full bg-black/70 text-white group-hover:flex\"\n aria-label={`Remove ${name}`}\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </div>\n );\n}\n","import type { LucideIcon } from 'lucide-react';\nimport {\n FileIcon,\n FileTextIcon,\n ImageIcon,\n CodeIcon,\n Trash2Icon,\n LoaderCircleIcon,\n} from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\n\nexport interface AttachmentCardProps {\n name: string;\n size: number;\n mimeType: string;\n onRemove: () => void;\n loading?: boolean;\n disabled?: boolean;\n /** Optional secondary text shown below the filename (e.g. file path). */\n subtitle?: string;\n}\n\nexport function AttachmentCard({\n name,\n size,\n mimeType: _mimeType,\n onRemove,\n loading = false,\n disabled = false,\n subtitle,\n}: AttachmentCardProps) {\n const ext = getExtension(name);\n const Icon = getFileIcon(ext);\n const iconColorClass = getFileIconColor(ext);\n\n return (\n <div className=\"flex items-center gap-3 rounded-md border p-2\">\n <div\n className={cn('flex h-8 w-8 shrink-0 items-center justify-center rounded', iconColorClass)}\n >\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-sm font-medium\">{name}</span>\n {subtitle ? (\n <span className=\"text-muted-foreground truncate text-xs\">{subtitle}</span>\n ) : null}\n <span className=\"text-muted-foreground text-xs\">\n {loading ? 'Uploading...' : formatFileSize(size)}\n </span>\n </div>\n {loading ? (\n <LoaderCircleIcon className=\"text-muted-foreground h-4 w-4 animate-spin\" />\n ) : (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={onRemove}\n disabled={disabled}\n aria-label={`Remove ${name}`}\n >\n <Trash2Icon className=\"h-3 w-3\" />\n </Button>\n )}\n </div>\n );\n}\n\nfunction getExtension(filename: string): string {\n const dot = filename.lastIndexOf('.');\n return dot >= 0 ? filename.slice(dot).toLowerCase() : '';\n}\n\nconst IMAGE_EXTS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.ico', '.bmp']);\nconst CODE_EXTS = new Set([\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.json',\n '.yaml',\n '.yml',\n '.xml',\n '.html',\n '.css',\n '.md',\n]);\n\nexport function getFileIcon(ext: string): LucideIcon {\n if (IMAGE_EXTS.has(ext)) return ImageIcon;\n if (ext === '.pdf') return FileTextIcon;\n if (CODE_EXTS.has(ext)) return CodeIcon;\n return FileIcon;\n}\n\nexport function getFileIconColor(ext: string): string {\n if (ext === '.pdf') return 'bg-red-50 text-red-600';\n if (IMAGE_EXTS.has(ext)) return 'bg-blue-50 text-blue-600';\n if (CODE_EXTS.has(ext)) return 'bg-emerald-50 text-emerald-600';\n return 'bg-gray-50 text-gray-600';\n}\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n return `${(bytes / Math.pow(1024, i)).toFixed(i === 0 ? 0 : 1)} ${units[i]}`;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n];\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('image', __iconNode);\n\nexport default Image;\n"],"names":["useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getAssetToken","getAssetTokenQuery","getDeploymentId","getDeploymentIdQuery","deploymentId","window","document","documentElement","dataset","dplId","NEXT_DEPLOYMENT_ID","undefined","ampersand","id","NEXT_IMMUTABLE_ASSET_TOKEN","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","InvariantError","Error","constructor","message","options","name","createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej","Textarea","className","props"],"mappings":"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","ignoreList":[0,1,2,3,4,5,8,10,14]}
@@ -0,0 +1,3 @@
1
+ module.exports=[20289,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),m=a.i(2211),n=a.i(96380),o=a.i(50961);async function p(){try{let a=(0,n.resolve)("FetchPluginCatalogUseCase");return await a.execute()}catch{return{plugins:[],installedPlugins:[],error:"Failed to fetch plugin catalog"}}}async function q(a,b,c){try{let d=(0,n.resolve)("InstallPluginUseCase");return await d.execute({pluginId:a,marketplace:b,scope:c})}catch{return{success:!1,error:"Failed to install plugin"}}}async function r(a,b){try{let c=(0,n.resolve)("UninstallPluginUseCase");return await c.execute({pluginId:a,marketplace:b})}catch{return{success:!1,error:"Failed to uninstall plugin"}}}async function s(a,b,c){try{let d=(0,n.resolve)("TogglePluginUseCase");return await d.execute({pluginId:a,marketplace:b,enabled:c})}catch{return{success:!1,error:"Failed to toggle plugin"}}}(0,o.ensureServerEntryExports)([p]),(0,m.registerServerReference)(p,"00f370f754383699689def4d7a4898a8ee347acd3a",null),(0,o.ensureServerEntryExports)([q]),(0,m.registerServerReference)(q,"70f4c685c6bd13716e115901c7108a2637aaacf6ae",null),(0,o.ensureServerEntryExports)([r]),(0,m.registerServerReference)(r,"6046a455d6763fc37adeeffe8e51718a58c5e6cf48",null),(0,o.ensureServerEntryExports)([s]),(0,m.registerServerReference)(s,"7093c2e65aae90392f738d1f50f2523f5a5bdd16e8",null),a.s([],84514),a.i(84514),a.s(["0000580db77af91e7fff00b0b4403fa4feb2a2d993",()=>b.getAllAgentModels,"0090338ccf5fa07afdb8e7be418d00bc55439e87cb",()=>d.pickFolder,"00943ac6a9bbebcc818933091a5b18b1078e166fba",()=>f.listGitHubOrganizations,"00f370f754383699689def4d7a4898a8ee347acd3a",0,p,"4003593de16b2e247ab1eb1181c364062f68e7d307",()=>i.deployFeature,"4058eda81dd47fff6d7ff1fce41ebebe1295013330",()=>l.getDeploymentStatus,"408634cd96c67a639ac703b296c3737d0bd811beb4",()=>e.listGitHubRepositories,"408739906befd13eb590447705120aa8421c1352f2",()=>g.importGitHubRepository,"40b67327258d66cc740b47723a9276348e1a748e30",()=>k.stopDeployment,"40bd3bb683e8d887532e0550b87c3a7348c011aff2",()=>h.getDeploymentLogs,"40f783df18e347ff4383dad5da16846a131bec83cd",()=>j.deployRepository,"6046a455d6763fc37adeeffe8e51718a58c5e6cf48",0,r,"609fb82c7c6c89ca50673823098e498a09a9fec629",()=>c.updateAgentAndModel,"7093c2e65aae90392f738d1f50f2523f5a5bdd16e8",0,s,"70f4c685c6bd13716e115901c7108a2637aaacf6ae",0,q],20289)}];
2
+
3
+ //# sourceMappingURL=src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/plugins/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/fetch-plugin-catalog.ts","../../../../../../../src/presentation/web/app/actions/install-plugin.ts","../../../../../../../src/presentation/web/app/actions/uninstall-plugin.ts","../../../../../../../src/presentation/web/app/actions/toggle-plugin.ts"],"sourcesContent":["export {getAllAgentModels as '0000580db77af91e7fff00b0b4403fa4feb2a2d993'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '609fb82c7c6c89ca50673823098e498a09a9fec629'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '0090338ccf5fa07afdb8e7be418d00bc55439e87cb'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '408634cd96c67a639ac703b296c3737d0bd811beb4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00943ac6a9bbebcc818933091a5b18b1078e166fba'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '408739906befd13eb590447705120aa8421c1352f2'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '40bd3bb683e8d887532e0550b87c3a7348c011aff2'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '4003593de16b2e247ab1eb1181c364062f68e7d307'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40f783df18e347ff4383dad5da16846a131bec83cd'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40b67327258d66cc740b47723a9276348e1a748e30'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '4058eda81dd47fff6d7ff1fce41ebebe1295013330'} from 'ACTIONS_MODULE10'\nexport {fetchPluginCatalogAction as '00f370f754383699689def4d7a4898a8ee347acd3a'} from 'ACTIONS_MODULE11'\nexport {installPluginAction as '70f4c685c6bd13716e115901c7108a2637aaacf6ae'} from 'ACTIONS_MODULE12'\nexport {uninstallPluginAction as '6046a455d6763fc37adeeffe8e51718a58c5e6cf48'} from 'ACTIONS_MODULE13'\nexport {togglePluginAction as '7093c2e65aae90392f738d1f50f2523f5a5bdd16e8'} from 'ACTIONS_MODULE14'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { FetchPluginCatalogUseCase } from '@shipit-ai/core/application/use-cases/plugins/fetch-plugin-catalog.use-case';\nimport type { FetchPluginCatalogResult } from '@shipit-ai/core/application/use-cases/plugins/fetch-plugin-catalog.use-case';\n\nexport async function fetchPluginCatalogAction(): Promise<\n FetchPluginCatalogResult & { error?: string }\n> {\n try {\n const useCase = resolve<FetchPluginCatalogUseCase>('FetchPluginCatalogUseCase');\n return await useCase.execute();\n } catch {\n return { plugins: [], installedPlugins: [], error: 'Failed to fetch plugin catalog' };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { InstallPluginUseCase } from '@shipit-ai/core/application/use-cases/plugins/install-plugin.use-case';\n\nexport async function installPluginAction(\n pluginId: string,\n marketplace: string,\n scope?: string\n): Promise<{ success: boolean; error?: string }> {\n try {\n const useCase = resolve<InstallPluginUseCase>('InstallPluginUseCase');\n return await useCase.execute({ pluginId, marketplace, scope });\n } catch {\n return { success: false, error: 'Failed to install plugin' };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { UninstallPluginUseCase } from '@shipit-ai/core/application/use-cases/plugins/uninstall-plugin.use-case';\n\nexport async function uninstallPluginAction(\n pluginId: string,\n marketplace: string\n): Promise<{ success: boolean; error?: string }> {\n try {\n const useCase = resolve<UninstallPluginUseCase>('UninstallPluginUseCase');\n return await useCase.execute({ pluginId, marketplace });\n } catch {\n return { success: false, error: 'Failed to uninstall plugin' };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { TogglePluginUseCase } from '@shipit-ai/core/application/use-cases/plugins/toggle-plugin.use-case';\n\nexport async function togglePluginAction(\n pluginId: string,\n marketplace: string,\n enabled: boolean\n): Promise<{ success: boolean; error?: string }> {\n try {\n const useCase = resolve<TogglePluginUseCase>('TogglePluginUseCase');\n return await useCase.execute({ pluginId, marketplace, enabled });\n } catch {\n return { success: false, error: 'Failed to toggle plugin' };\n }\n}\n"],"names":["fetchPluginCatalogAction","useCase","execute","plugins","installedPlugins","error"],"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,mBCRA,EAAA,EAAA,CAAA,CAAA,oBAIO,eAAeA,IAGpB,GAAI,CACF,IAAMC,EAAU,CAAA,EAAA,EAAA,OAAO,AAAP,EAAmC,6BACnD,OAAO,MAAMA,EAAQC,OAAO,EAC9B,CAAE,KAAM,CACN,MAAO,CAAEC,QAAS,EAAE,CAAEC,iBAAkB,EAAE,CAAEC,MAAO,gCAAiC,CACtF,CACF,CCVO,eAAe,EACpB,CAAgB,CAChB,CAAmB,CACnB,CAAc,EAEd,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAuB,wBAC9C,OAAO,MAAM,EAAQ,OAAO,CAAC,UAAE,cAAU,QAAa,CAAM,EAC9D,CAAE,KAAM,CACN,MAAO,CAAE,SAAS,EAAO,MAAO,0BAA2B,CAC7D,CACF,CCXO,eAAe,EACpB,CAAgB,CAChB,CAAmB,EAEnB,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAyB,0BAChD,OAAO,MAAM,EAAQ,OAAO,CAAC,UAAE,cAAU,CAAY,EACvD,CAAE,KAAM,CACN,MAAO,CAAE,SAAS,EAAO,MAAO,4BAA6B,CAC/D,CACF,CCVO,eAAe,EACpB,CAAgB,CAChB,CAAmB,CACnB,CAAgB,EAEhB,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAsB,uBAC7C,OAAO,MAAM,EAAQ,OAAO,CAAC,UAAE,cAAU,UAAa,CAAQ,EAChE,CAAE,KAAM,CACN,MAAO,CAAE,SAAS,EAAO,MAAO,yBAA0B,CAC5D,CACF,iCHVsBL,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,sCCDA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCAA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCAA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[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(["00119cdcc13ee8fb1ca1450881a722c635cf8ecee8",()=>f.listGitHubOrganizations,"00531e7c44d61735c837fc77253d091ec7f7d92aca",()=>d.pickFolder,"006dd94c120d44a477bf313c8c0ae9236e237ff7cc",()=>b.getAllAgentModels,"401f6ee24060db3e558912f63d162b6382a3d5b906",()=>l.getDeploymentStatus,"40249ea399b10101b933e1ff244aa5ff2944adc20f",()=>k.stopDeployment,"404e12ca19585a0e561bbbcf1dec1bc8c7056972c9",()=>h.getDeploymentLogs,"40578764a5fa268b37e4087744e7e6ad656080ed30",()=>i.deployFeature,"40734389e9214e5321b0c8e734a6d4ffe4c3d760be",()=>e.listGitHubRepositories,"409fb840fd8cb8191a370796b485fe01e88cab3222",()=>j.deployRepository,"40c34c284f6000278ca622fb9bae3a1670a3ca9340",()=>g.importGitHubRepository,"60caab46c0c16a1d86c039028f40b005df28cc94f9",()=>c.updateAgentAndModel],14937)}];
1
+ module.exports=[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(["0000580db77af91e7fff00b0b4403fa4feb2a2d993",()=>b.getAllAgentModels,"0090338ccf5fa07afdb8e7be418d00bc55439e87cb",()=>d.pickFolder,"00943ac6a9bbebcc818933091a5b18b1078e166fba",()=>f.listGitHubOrganizations,"4003593de16b2e247ab1eb1181c364062f68e7d307",()=>i.deployFeature,"4058eda81dd47fff6d7ff1fce41ebebe1295013330",()=>l.getDeploymentStatus,"408634cd96c67a639ac703b296c3737d0bd811beb4",()=>e.listGitHubRepositories,"408739906befd13eb590447705120aa8421c1352f2",()=>g.importGitHubRepository,"40b67327258d66cc740b47723a9276348e1a748e30",()=>k.stopDeployment,"40bd3bb683e8d887532e0550b87c3a7348c011aff2",()=>h.getDeploymentLogs,"40f783df18e347ff4383dad5da16846a131bec83cd",()=>j.deployRepository,"609fb82c7c6c89ca50673823098e498a09a9fec629",()=>c.updateAgentAndModel],14937)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '006dd94c120d44a477bf313c8c0ae9236e237ff7cc'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60caab46c0c16a1d86c039028f40b005df28cc94f9'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00531e7c44d61735c837fc77253d091ec7f7d92aca'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40734389e9214e5321b0c8e734a6d4ffe4c3d760be'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00119cdcc13ee8fb1ca1450881a722c635cf8ecee8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '40c34c284f6000278ca622fb9bae3a1670a3ca9340'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '404e12ca19585a0e561bbbcf1dec1bc8c7056972c9'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40578764a5fa268b37e4087744e7e6ad656080ed30'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '409fb840fd8cb8191a370796b485fe01e88cab3222'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40249ea399b10101b933e1ff244aa5ff2944adc20f'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '401f6ee24060db3e558912f63d162b6382a3d5b906'} from 'ACTIONS_MODULE10'\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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '0000580db77af91e7fff00b0b4403fa4feb2a2d993'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '609fb82c7c6c89ca50673823098e498a09a9fec629'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '0090338ccf5fa07afdb8e7be418d00bc55439e87cb'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '408634cd96c67a639ac703b296c3737d0bd811beb4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00943ac6a9bbebcc818933091a5b18b1078e166fba'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '408739906befd13eb590447705120aa8421c1352f2'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '40bd3bb683e8d887532e0550b87c3a7348c011aff2'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '4003593de16b2e247ab1eb1181c364062f68e7d307'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40f783df18e347ff4383dad5da16846a131bec83cd'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40b67327258d66cc740b47723a9276348e1a748e30'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '4058eda81dd47fff6d7ff1fce41ebebe1295013330'} from 'ACTIONS_MODULE10'\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"}
@@ -1,3 +1,3 @@
1
- module.exports=[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(["00119cdcc13ee8fb1ca1450881a722c635cf8ecee8",()=>f.listGitHubOrganizations,"00531e7c44d61735c837fc77253d091ec7f7d92aca",()=>d.pickFolder,"006dd94c120d44a477bf313c8c0ae9236e237ff7cc",()=>b.getAllAgentModels,"401f6ee24060db3e558912f63d162b6382a3d5b906",()=>l.getDeploymentStatus,"40249ea399b10101b933e1ff244aa5ff2944adc20f",()=>k.stopDeployment,"404e12ca19585a0e561bbbcf1dec1bc8c7056972c9",()=>h.getDeploymentLogs,"40578764a5fa268b37e4087744e7e6ad656080ed30",()=>i.deployFeature,"40734389e9214e5321b0c8e734a6d4ffe4c3d760be",()=>e.listGitHubRepositories,"409fb840fd8cb8191a370796b485fe01e88cab3222",()=>j.deployRepository,"40c34c284f6000278ca622fb9bae3a1670a3ca9340",()=>g.importGitHubRepository,"60caab46c0c16a1d86c039028f40b005df28cc94f9",()=>c.updateAgentAndModel],21171)}];
1
+ module.exports=[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(["0000580db77af91e7fff00b0b4403fa4feb2a2d993",()=>b.getAllAgentModels,"0090338ccf5fa07afdb8e7be418d00bc55439e87cb",()=>d.pickFolder,"00943ac6a9bbebcc818933091a5b18b1078e166fba",()=>f.listGitHubOrganizations,"4003593de16b2e247ab1eb1181c364062f68e7d307",()=>i.deployFeature,"4058eda81dd47fff6d7ff1fce41ebebe1295013330",()=>l.getDeploymentStatus,"408634cd96c67a639ac703b296c3737d0bd811beb4",()=>e.listGitHubRepositories,"408739906befd13eb590447705120aa8421c1352f2",()=>g.importGitHubRepository,"40b67327258d66cc740b47723a9276348e1a748e30",()=>k.stopDeployment,"40bd3bb683e8d887532e0550b87c3a7348c011aff2",()=>h.getDeploymentLogs,"40f783df18e347ff4383dad5da16846a131bec83cd",()=>j.deployRepository,"609fb82c7c6c89ca50673823098e498a09a9fec629",()=>c.updateAgentAndModel],21171)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '006dd94c120d44a477bf313c8c0ae9236e237ff7cc'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60caab46c0c16a1d86c039028f40b005df28cc94f9'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '00531e7c44d61735c837fc77253d091ec7f7d92aca'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40734389e9214e5321b0c8e734a6d4ffe4c3d760be'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00119cdcc13ee8fb1ca1450881a722c635cf8ecee8'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '40c34c284f6000278ca622fb9bae3a1670a3ca9340'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '404e12ca19585a0e561bbbcf1dec1bc8c7056972c9'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '40578764a5fa268b37e4087744e7e6ad656080ed30'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '409fb840fd8cb8191a370796b485fe01e88cab3222'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40249ea399b10101b933e1ff244aa5ff2944adc20f'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '401f6ee24060db3e558912f63d162b6382a3d5b906'} from 'ACTIONS_MODULE10'\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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {getAllAgentModels as '0000580db77af91e7fff00b0b4403fa4feb2a2d993'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '609fb82c7c6c89ca50673823098e498a09a9fec629'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '0090338ccf5fa07afdb8e7be418d00bc55439e87cb'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '408634cd96c67a639ac703b296c3737d0bd811beb4'} from 'ACTIONS_MODULE3'\nexport {listGitHubOrganizations as '00943ac6a9bbebcc818933091a5b18b1078e166fba'} from 'ACTIONS_MODULE4'\nexport {importGitHubRepository as '408739906befd13eb590447705120aa8421c1352f2'} from 'ACTIONS_MODULE5'\nexport {getDeploymentLogs as '40bd3bb683e8d887532e0550b87c3a7348c011aff2'} from 'ACTIONS_MODULE6'\nexport {deployFeature as '4003593de16b2e247ab1eb1181c364062f68e7d307'} from 'ACTIONS_MODULE7'\nexport {deployRepository as '40f783df18e347ff4383dad5da16846a131bec83cd'} from 'ACTIONS_MODULE8'\nexport {stopDeployment as '40b67327258d66cc740b47723a9276348e1a748e30'} from 'ACTIONS_MODULE9'\nexport {getDeploymentStatus as '4058eda81dd47fff6d7ff1fce41ebebe1295013330'} from 'ACTIONS_MODULE10'\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"}
@@ -1,3 +1,3 @@
1
- module.exports=[61402,76052,13008,74607,6542,73624,12104,70319,54433,59020,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60b33ca57ed57495cd027b985f914f496780939ba6",null),a.s(["approveFeature",0,e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"709e82694e2ccf681029850620222f53af99eeab25",null),a.s(["rejectFeature",0,f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"405ffd00e2c5291f1aa528878c26c4f85e09400cca",null),a.s(["getFeatureArtifact",0,g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"40e40d4bef267e9ea2b29d3cc8f310a9621ca3b834",null),a.s(["getResearchArtifact",0,h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227);function l(a){try{return(0,j.realpathSync)(a)}catch{return null}}function m(a,b){let c=b.replace(/\\/g,"/"),d=a.replace(/\\/g,"/");return d===c||d.startsWith(`${c}/`)}a.i(12714),a.i(1442);var n=a.i(29918),o=a.i(83771);async function p(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let p=(0,c.resolve)("LoadSettingsUseCase"),{workflow:q}=await p.execute(),r=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,s=h.worktreePath??(h.repositoryPath&&h.branch?(0,n.computeWorktreePath)(h.repositoryPath,h.branch):null),t=(0,c.resolve)("IGitPrService"),u=s??h.repositoryPath??null,v="main";if(u)try{v=await t.getDefaultBranch(u)}catch{}let w=h.branch?{source:h.branch,target:v}:void 0,x=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,o.getShipitAiHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):s?(0,k.join)((0,k.dirname)((0,k.dirname)(s)),"evidence",a).replace(/\\/g,"/"):null;if(x)try{let a=l((0,o.getShipitAiHomeDir)()),b=l(x);if(a&&b&&m(b,a)){let a=l((0,k.join)(b,"manifest.json"));if(a&&m(a,b)){let b=(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),d.map(a=>{if(a.relativePath.startsWith("/"))return a;let b=(0,k.basename)(a.relativePath),c=(0,k.join)(x,b).replace(/\\/g,"/");return{...a,relativePath:c}})),c=new Set;e=b.filter(a=>{let b=`${a.type}:${a.relativePath}`;return!c.has(b)&&(c.add(b),!0)})}}}catch{}if(!s)return{pr:r,branch:w,evidence:e,warning:r?void 0:"No PR or diff data available",hideCiStatus:q.hideCiStatus};try{let[a,b]=await Promise.all([t.getPrDiffSummary(s,v),t.getFileDiffs(s,v).catch(()=>void 0)]);return{pr:r,branch:w,diffSummary:a,fileDiffs:b,evidence:e,hideCiStatus:q.hideCiStatus}}catch{return{pr:r,branch:w,evidence:e,warning:"Diff statistics unavailable",hideCiStatus:q.hideCiStatus}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt.toISOString(),completedAt:a.completedAt?.toISOString(),durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt?.toISOString(),approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0,prompt:a.prompt??void 0})),e=await r(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function r(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function s(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function t(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"40dbd9c9bdca4572910fd6291637cdd55b2bb483f3",null),a.s(["getMergeReviewData",0,p],6542),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"400a7095bce3e26b0bec4033483c012e3d89a4cc55",null),a.s(["getFeaturePhaseTimings",0,q],73624),(0,d.ensureServerEntryExports)([s]),(0,b.registerServerReference)(s,"4076c8c4167585e24abc268905f905fb64cfbe49ee",null),a.s(["getFeaturePlan",0,s],12104),(0,d.ensureServerEntryExports)([t]),(0,b.registerServerReference)(t,"4041f46526d0b0da4ceae2ad41f5db83e65befd104",null),a.s(["rebaseFeature",0,t],70319);var u=a.i(31747);async function v(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),n=(0,c.resolve)("LoadSettingsUseCase"),{workflow:o}=await n.execute();return(0,u.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:o.enableEvidence,commitEvidence:o.commitEvidence,hideCiStatus:o.hideCiStatus})}catch{return null}}async function w(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("GetBranchSyncStatusUseCase"),d=await b.execute(a);return{success:!0,data:{...d,checkedAt:new Date().toISOString()}}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to get branch sync status"}}}(0,d.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"407046ab123008697ea6fe8b330c08779daa403a1e",null),a.s(["getFeatureDrawerData",0,v],54433),(0,d.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"40a7b44fa82001748a142d0dcb62e48dcd565c5631",null),a.s(["getBranchSyncStatus",0,w],59020)}];
1
+ module.exports=[61402,76052,13008,74607,6542,73624,12104,70319,54433,59020,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("RejectAgentRunUseCase"),h=await g.execute(f.agentRunId,b,d);if(!h.rejected)return{rejected:!1,error:h.reason};return{rejected:!0,iteration:h.iteration,iterationWarning:h.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60755eca880710d7d978f6ad7afb78d179fb952241",null),a.s(["approveFeature",0,e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"70c6158c60105cee47efe428412f0de6ebb2679632",null),a.s(["rejectFeature",0,f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40ca00868cbab68044d8e9add4f5ec7be4eb5b49c3",null),a.s(["getFeatureArtifact",0,g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"401c96f1aca3ed9e9af362eb9a61e156a8d17cb138",null),a.s(["getResearchArtifact",0,h],74607);var i=a.i(66680),j=a.i(2157),k=a.i(50227);function l(a){try{return(0,j.realpathSync)(a)}catch{return null}}function m(a,b){let c=b.replace(/\\/g,"/"),d=a.replace(/\\/g,"/");return d===c||d.startsWith(`${c}/`)}a.i(12714),a.i(1442);var n=a.i(29918),o=a.i(83771);async function p(a){if(!a.trim())return{error:"Feature id is required"};try{var b,d;let e,f,g=(0,c.resolve)("IFeatureRepository"),h=await g.findById(a);if(!h)return{error:"Feature not found"};let p=(0,c.resolve)("LoadSettingsUseCase"),{workflow:q}=await p.execute(),r=h.pr?{url:h.pr.url,number:h.pr.number,status:h.pr.status,commitHash:h.pr.commitHash,ciStatus:h.pr.ciStatus,mergeable:h.pr.mergeable}:void 0,s=h.worktreePath??(h.repositoryPath&&h.branch?(0,n.computeWorktreePath)(h.repositoryPath,h.branch):null),t=(0,c.resolve)("IGitPrService"),u=s??h.repositoryPath??null,v="main";if(u)try{v=await t.getDefaultBranch(u)}catch{}let w=h.branch?{source:h.branch,target:v}:void 0,x=h.repositoryPath?(b=h.repositoryPath,f=(0,i.createHash)("sha256").update(b).digest("hex").slice(0,16),(0,k.join)((0,o.getShipitAiHomeDir)(),"repos",f,"evidence",a).replace(/\\/g,"/")):s?(0,k.join)((0,k.dirname)((0,k.dirname)(s)),"evidence",a).replace(/\\/g,"/"):null;if(x)try{let a=l((0,o.getShipitAiHomeDir)()),b=l(x);if(a&&b&&m(b,a)){let a=l((0,k.join)(b,"manifest.json"));if(a&&m(a,b)){let b=(d=JSON.parse((0,j.readFileSync)(a,"utf-8")),d.map(a=>{if(a.relativePath.startsWith("/"))return a;let b=(0,k.basename)(a.relativePath),c=(0,k.join)(x,b).replace(/\\/g,"/");return{...a,relativePath:c}})),c=new Set;e=b.filter(a=>{let b=`${a.type}:${a.relativePath}`;return!c.has(b)&&(c.add(b),!0)})}}}catch{}if(!s)return{pr:r,branch:w,evidence:e,warning:r?void 0:"No PR or diff data available",hideCiStatus:q.hideCiStatus};try{let[a,b]=await Promise.all([t.getPrDiffSummary(s,v),t.getFileDiffs(s,v).catch(()=>void 0)]);return{pr:r,branch:w,diffSummary:a,fileDiffs:b,evidence:e,hideCiStatus:q.hideCiStatus}}catch{return{pr:r,branch:w,evidence:e,warning:"Diff statistics unavailable",hideCiStatus:q.hideCiStatus}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function q(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt.toISOString(),completedAt:a.completedAt?.toISOString(),durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt?.toISOString(),approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0,inputTokens:null!=a.inputTokens?Number(a.inputTokens):void 0,outputTokens:null!=a.outputTokens?Number(a.outputTokens):void 0,cacheCreationInputTokens:null!=a.cacheCreationInputTokens?Number(a.cacheCreationInputTokens):void 0,cacheReadInputTokens:null!=a.cacheReadInputTokens?Number(a.cacheReadInputTokens):void 0,costUsd:null!=a.costUsd?Number(a.costUsd):void 0,numTurns:a.numTurns??void 0,durationApiMs:null!=a.durationApiMs?Number(a.durationApiMs):void 0,exitCode:a.exitCode??void 0,errorMessage:a.errorMessage??void 0,prompt:a.prompt??void 0})),e=await r(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function r(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function s(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}async function t(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("RebaseFeatureOnMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to rebase feature"}}}(0,d.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"40aefd6db34ef9f33d85cd2f2a56a60edf7f120612",null),a.s(["getMergeReviewData",0,p],6542),(0,d.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"40ee6a5a062f38264a7448ad567f062f73a7233388",null),a.s(["getFeaturePhaseTimings",0,q],73624),(0,d.ensureServerEntryExports)([s]),(0,b.registerServerReference)(s,"4044f86e4455ce9c124ecb5e992271ad95733f9085",null),a.s(["getFeaturePlan",0,s],12104),(0,d.ensureServerEntryExports)([t]),(0,b.registerServerReference)(t,"40bcf813fba0f13b2f10f2010bc466c6c1c3f0636d",null),a.s(["rebaseFeature",0,t],70319);var u=a.i(31747);async function v(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),n=(0,c.resolve)("LoadSettingsUseCase"),{workflow:o}=await n.execute();return(0,u.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:o.enableEvidence,commitEvidence:o.commitEvidence,hideCiStatus:o.hideCiStatus})}catch{return null}}async function w(a){if(!a?.trim())return{success:!1,error:"Feature id is required"};try{let b=(0,c.resolve)("GetBranchSyncStatusUseCase"),d=await b.execute(a);return{success:!0,data:{...d,checkedAt:new Date().toISOString()}}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to get branch sync status"}}}(0,d.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"40420b6cdddf339640da9ad1fdd720ecb549d5f1dc",null),a.s(["getFeatureDrawerData",0,v],54433),(0,d.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"40800e63fa88206e5dc18cbe91427fd16ed46648dc",null),a.s(["getBranchSyncStatus",0,w],59020)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[84095,56799,80496,93225,41872,9959,79124,29207,10528,50845,26604,54723,18942,42886,49560,39353,a=>{"use strict";var b=a.i(2211),c=a.i(50227),d=a.i(96380),e=a.i(50961);async function f(a){let{repositoryPath:b,branch:e}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};let f=(0,d.resolve)("LoadSettingsUseCase"),g=(await f.execute()).environment.defaultEditor,h=(0,d.resolve)("LaunchIdeUseCase"),i=await h.execute({editorId:g,repositoryPath:b,branch:e,checkAvailability:!0});return i.ok?{success:!0,editor:i.editorName,path:i.worktreePath}:{success:!1,error:i.message}}(0,e.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"408a351ec69b118abebca4cad790563da8357d4b69",null),a.s(["openIde",0,f],84095);var g=a.i(2157),h=a.i(60526),i=a.i(74533);a.i(1442);var j=a.i(29918);let k={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]},win32:{cmd:"cmd.exe",args:a=>["/c","start","powershell","-NoExit","-Command",`Set-Location "${a}"`]}};async function l(a){let{repositoryPath:b,branch:e}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=(0,d.resolve)("LoadSettingsUseCase"),c=await a.execute(),f=c.environment.shellPreference,l=c.environment.terminalPreference??"system",m=function(a,b){try{let c=b?(0,j.computeWorktreePath)(a,b):a;return(0,g.realpathSync)(c)}catch{return null}}(b,e);if(!m)return{success:!1,error:"Path does not exist"};if("system"!==l)try{let a=(0,d.resolve)("IToolInstallerService").getTerminalOpenConfig(l);if(a?.openDirectory.includes("{dir}")){if(a.shell){let b=`'${m.replace(/'/g,"'\\''")}'`,c=a.openDirectory.replaceAll("{dir}",b),d=(0,i.spawn)(c,[],{detached:!0,stdio:"ignore",shell:!0});d.on("error",()=>void 0),d.unref()}else{let b=a.openDirectory.split(/\s+/).filter(Boolean),c=b[0],d=b.slice(1).map(a=>a.replaceAll("{dir}",m)),e=(0,i.spawn)(c,d,{detached:!0,stdio:"ignore"});e.on("error",()=>void 0),e.unref()}return{success:!0,path:m,shell:f}}}catch{}let n=k[(0,h.platform)()];if(!n)return{success:!1,error:`Unsupported platform: ${(0,h.platform)()}`};let o=(0,i.spawn)(n.cmd,n.args(m),{detached:!0,stdio:"ignore"});return o.on("error",()=>void 0),o.unref(),{success:!0,path:m,shell:f}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}(0,e.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"4079ac96e8bb675614469b1bb362d15d0d3555e5c7",null),a.s(["openShell",0,l],56799);let m={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function n(a){if(!a||!(0,c.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{let b;try{b=(0,g.realpathSync)(a)}catch{return{success:!1,error:"Directory not found"}}let d=m[(0,h.platform)()];if(!d)return{success:!1,error:`Unsupported platform: ${(0,h.platform)()}`};let e=(0,c.normalize)(b),f=(0,i.spawn)(d.cmd,d.args(e),{detached:!0,stdio:"ignore"});return f.on("error",()=>void 0),f.unref(),{success:!0,path:b}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}async function o(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,d.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}async function p(){try{let a=(0,d.resolve)("LoadSettingsUseCase");return(await a.execute()).onboardingComplete}catch{return!1}}(0,e.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"409f6c15225b50f5618557c80211ff43127dc13c96",null),a.s(["openFolder",0,n],80496),(0,e.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40f508274fb6b282963b98c93a4501f4bbf547019c",null),a.s(["syncRepository",0,o],93225),(0,e.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"0095c0f3504806564d850201c18f107de970eb219f",null),a.s(["isAgentSetupComplete",0,p],41872);var q=a.i(37512);let r={"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor CLI","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},s={"claude-code":"claude-code","codex-cli":"codex-cli","copilot-cli":"copilot-cli",cursor:"cursor-cli","gemini-cli":"gemini-cli","rovo-dev":"rovo-dev"},t={"claude-code":"claude","codex-cli":"codex","copilot-cli":"copilot",cursor:"cursor-agent","gemini-cli":"gemini","rovo-dev":"acli"};function u(a,b){return new Promise(c=>{let d,e;switch(a){case"claude-code":d=b,e=["auth","status"];break;case"cursor":d=b,e=["status"];break;case"codex-cli":c(!1);return;case"copilot-cli":default:c(!0);return;case"rovo-dev":{let a=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)("acli",["rovodev","auth","status"],a,a=>{c(!a)});return}}try{let a=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(d,e,a,a=>{c(!a)})}catch{c(!1)}})}async function v(){let a;try{let b=(0,d.resolve)("LoadSettingsUseCase");a=(await b.execute()).agent.type}catch{return{agentType:"unknown",installed:!1,authenticated:!1,label:"Unknown",binaryName:null,installCommand:null,authCommand:null}}let b=r[a]??a,e=s[a]??null,f=t[a]??null;if(!e)return{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:null,installCommand:null,authCommand:null};let i=!1,j=null;try{let a=(0,d.resolve)("ListToolsUseCase"),b=(await a.execute()).find(a=>a.id===e);i=b?.status.status==="available",j=b?.installCommand??null}catch{i=!1}if(!i)return{agentType:a,installed:!1,authenticated:!1,label:b,binaryName:f,installCommand:j,authCommand:f?`Install ${b} first`:null};let k=function(a){let b=(0,h.homedir)();switch(a){case"claude-code":{if(process.env.ANTHROPIC_API_KEY||process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.CLAUDE_CODE_OAUTH_TOKEN)return"env-var";let a=(0,c.join)(b,".claude",".credentials.json");return!!(0,g.existsSync)(a)&&"file"}case"codex-cli":if(process.env.OPENAI_API_KEY)return"env-var";return!1;case"cursor":{if(process.env.CURSOR_API_KEY)return"env-var";let a=(0,c.join)(b,".cursor");return!!(0,g.existsSync)(a)&&"file"}case"gemini-cli":{if(process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY||process.env.GOOGLE_APPLICATION_CREDENTIALS)return"env-var";let a=(0,c.join)(b,".gemini","google_accounts.json");return!!(0,g.existsSync)(a)&&"file"}case"copilot-cli":{if(process.env.COPILOT_GITHUB_TOKEN||process.env.GH_TOKEN||process.env.GITHUB_TOKEN)return"env-var";let a=process.env.COPILOT_HOME?(0,c.join)(process.env.COPILOT_HOME,"config.json"):(0,c.join)(b,".copilot","config.json");return!!(0,g.existsSync)(a)&&"file"}case"rovo-dev":{if(process.env.ATLASSIAN_API_TOKEN)return"env-var";let a=(0,c.join)(b,".acli");return!!(0,g.existsSync)(a)&&"file"}default:return"env-var"}}(a);if("env-var"===k)return{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:f,installCommand:j,authCommand:null};if("file"===k){let c=!0;return f&&(c=await u(a,f)),{agentType:a,installed:!0,authenticated:c,label:b,binaryName:f,installCommand:j,authCommand:c?null:f}}return f&&await u(a,f)?{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:f,installCommand:j,authCommand:null}:{agentType:a,installed:!0,authenticated:!1,label:b,binaryName:f,installCommand:j,authCommand:f}}function w(a,b){return new Promise(c=>{try{let d=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(a,b,d,(a,b)=>{if(a)return void c({installed:!1,version:null});let d=b.match(/(\d+\.\d+(?:\.\d+)?)/);c({installed:!0,version:d?.[1]??null})})}catch{c({installed:!1,version:null})}})}async function x(){let[a,b,c]=await Promise.all([w("git",["--version"]),w("gh",["--version"]),(async()=>{try{let a=(0,d.resolve)("ListToolsUseCase");return await a.execute()}catch{return[]}})()]),e=c.find(a=>"git"===a.id),f=c.find(a=>"gh"===a.id);return{git:{...a,installCommand:e?.installCommand??null,installUrl:e?.website??"https://git-scm.com"},gh:{...b,installCommand:f?.installCommand??null,installUrl:f?.website??"https://cli.github.com"}}}async function y(a){let b=(0,d.resolve)("IFeatureRepository"),c=await b.findById(a);return c?{name:c.name,description:c.description}:null}async function z(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,d.resolve)("ArchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to archive feature"}}}async function A(a,b,c,e){if(!a?.trim())return{error:"id is required"};try{let f=(0,d.resolve)("DeleteFeatureUseCase"),g={};return void 0!==b&&(g.cleanup=b),void 0!==c&&(g.cascadeDelete=c),void 0!==e&&(g.closePr=e),{feature:Object.keys(g).length>0?await f.execute(a,g):await f.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function B(a){if(!a.trim())return{resumed:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("ResumeFeatureUseCase");return await b.execute(a),{resumed:!0}}catch(a){return{resumed:!1,error:a instanceof Error?a.message:"Failed to resume feature"}}}async function C(a){if(!a.trim())return{started:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("StartFeatureUseCase");return await b.execute(a),{started:!0}}catch(a){return{started:!1,error:a instanceof Error?a.message:"Failed to start feature"}}}async function D(a){if(!a.trim())return{stopped:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("IAgentRunRepository"),c=(await b.list()).find(b=>b.featureId===a&&"completed"!==b.status&&"failed"!==b.status&&"interrupted"!==b.status&&"cancelled"!==b.status);if(!c)return{stopped:!1,error:"No active agent run found for this feature"};let e=(0,d.resolve)("StopAgentRunUseCase"),f=await e.execute(c.id);if(!f.stopped)return{stopped:!1,error:f.reason};return{stopped:!0}}catch(a){return{stopped:!1,error:a instanceof Error?a.message:"Failed to stop agent"}}}async function E(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,d.resolve)("UnarchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to unarchive feature"}}}async function F(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,d.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function G(a){if(!a?.trim())return{success:!1,error:"id is required"};try{let b=(0,d.resolve)("DeleteRepositoryUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}(0,e.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"0077ee1faaa5cc3c7d8a4ff366ef5da3126d4dda30",null),a.s(["checkAgentAuth",0,v],9959),(0,e.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"0032fc51829142f8677a1255284c86aadb6ae39dcb",null),a.s(["checkToolStatus",0,x],79124),(0,e.ensureServerEntryExports)([y]),(0,b.registerServerReference)(y,"40f06672e32e2701a60e1c2976c2404166c9675192",null),a.s(["getFeatureMetadata",0,y],29207),(0,e.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"4011206410dc046eea21633dd17fd60736abc119eb",null),a.s(["archiveFeature",0,z],10528),(0,e.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"787ac45c9eb859e154692b2cc19df6cccb3c687ad7",null),a.s(["deleteFeature",0,A],50845),(0,e.ensureServerEntryExports)([B]),(0,b.registerServerReference)(B,"404dc4fa24207f80f455a7a3798e29f83ad30bb5e7",null),a.s(["resumeFeature",0,B],26604),(0,e.ensureServerEntryExports)([C]),(0,b.registerServerReference)(C,"40f3963b037fcdb4c0a848fd0ee18ea74746a955da",null),a.s(["startFeature",0,C],54723),(0,e.ensureServerEntryExports)([D]),(0,b.registerServerReference)(D,"403a3fffef64c3470cad4b8890da4b2b9dd5102f45",null),a.s(["stopFeature",0,D],18942),(0,e.ensureServerEntryExports)([E]),(0,b.registerServerReference)(E,"406aee7333d67ea23c94e8b51f7059ad576b8a692c",null),a.s(["unarchiveFeature",0,E],42886),(0,e.ensureServerEntryExports)([F]),(0,b.registerServerReference)(F,"4004d32919c34ccd2753a4d1fdbd3c48f0650d0421",null),a.s(["addRepository",0,F],49560),(0,e.ensureServerEntryExports)([G]),(0,b.registerServerReference)(G,"40c73f84944f0fb50c9214460a63c840f28049d611",null),a.s(["deleteRepository",0,G],39353)}];
1
+ module.exports=[84095,56799,80496,93225,41872,9959,79124,29207,10528,50845,26604,54723,18942,42886,49560,39353,a=>{"use strict";var b=a.i(2211),c=a.i(50227),d=a.i(96380),e=a.i(50961);async function f(a){let{repositoryPath:b,branch:e}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};let f=(0,d.resolve)("LoadSettingsUseCase"),g=(await f.execute()).environment.defaultEditor,h=(0,d.resolve)("LaunchIdeUseCase"),i=await h.execute({editorId:g,repositoryPath:b,branch:e,checkAvailability:!0});return i.ok?{success:!0,editor:i.editorName,path:i.worktreePath}:{success:!1,error:i.message}}(0,e.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"40f3d51b9274fcab47195c76d09141c17508842170",null),a.s(["openIde",0,f],84095);var g=a.i(2157),h=a.i(60526),i=a.i(74533);a.i(1442);var j=a.i(29918);let k={darwin:{cmd:"open",args:a=>["-a","Terminal",a]},linux:{cmd:"x-terminal-emulator",args:a=>[`--working-directory=${a}`]},win32:{cmd:"cmd.exe",args:a=>["/c","start","powershell","-NoExit","-Command",`Set-Location "${a}"`]}};async function l(a){let{repositoryPath:b,branch:e}=a;if(!b||!(0,c.isAbsolute)(b))return{success:!1,error:"repositoryPath must be an absolute path"};try{let a=(0,d.resolve)("LoadSettingsUseCase"),c=await a.execute(),f=c.environment.shellPreference,l=c.environment.terminalPreference??"system",m=function(a,b){try{let c=b?(0,j.computeWorktreePath)(a,b):a;return(0,g.realpathSync)(c)}catch{return null}}(b,e);if(!m)return{success:!1,error:"Path does not exist"};if("system"!==l)try{let a=(0,d.resolve)("IToolInstallerService").getTerminalOpenConfig(l);if(a?.openDirectory.includes("{dir}")){if(a.shell){let b=`'${m.replace(/'/g,"'\\''")}'`,c=a.openDirectory.replaceAll("{dir}",b),d=(0,i.spawn)(c,[],{detached:!0,stdio:"ignore",shell:!0});d.on("error",()=>void 0),d.unref()}else{let b=a.openDirectory.split(/\s+/).filter(Boolean),c=b[0],d=b.slice(1).map(a=>a.replaceAll("{dir}",m)),e=(0,i.spawn)(c,d,{detached:!0,stdio:"ignore"});e.on("error",()=>void 0),e.unref()}return{success:!0,path:m,shell:f}}}catch{}let n=k[(0,h.platform)()];if(!n)return{success:!1,error:`Unsupported platform: ${(0,h.platform)()}`};let o=(0,i.spawn)(n.cmd,n.args(m),{detached:!0,stdio:"ignore"});return o.on("error",()=>void 0),o.unref(),{success:!0,path:m,shell:f}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open shell"}}}(0,e.ensureServerEntryExports)([l]),(0,b.registerServerReference)(l,"4000905392bc403639c2275018d0e77a4caaef76df",null),a.s(["openShell",0,l],56799);let m={darwin:{cmd:"open",args:a=>[a]},linux:{cmd:"xdg-open",args:a=>[a]},win32:{cmd:"explorer",args:a=>[a]}};async function n(a){if(!a||!(0,c.isAbsolute)(a))return{success:!1,error:"repositoryPath must be an absolute path"};try{let b;try{b=(0,g.realpathSync)(a)}catch{return{success:!1,error:"Directory not found"}}let d=m[(0,h.platform)()];if(!d)return{success:!1,error:`Unsupported platform: ${(0,h.platform)()}`};let e=(0,c.normalize)(b),f=(0,i.spawn)(d.cmd,d.args(e),{detached:!0,stdio:"ignore"});return f.on("error",()=>void 0),f.unref(),{success:!0,path:b}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to open folder"}}}async function o(a){if(!a?.trim())return{success:!1,error:"Repository id is required"};try{let b=(0,d.resolve)("SyncRepositoryMainUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to sync repository"}}}async function p(){try{let a=(0,d.resolve)("LoadSettingsUseCase");return(await a.execute()).onboardingComplete}catch{return!1}}(0,e.ensureServerEntryExports)([n]),(0,b.registerServerReference)(n,"4071fe82b6e1a66c52b851807ccb61247524482573",null),a.s(["openFolder",0,n],80496),(0,e.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40454d1aa8b3a4642e6211000ea814a233e91f33fa",null),a.s(["syncRepository",0,o],93225),(0,e.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"004f0662883886d46f8f0aa0e3237f30af277b100f",null),a.s(["isAgentSetupComplete",0,p],41872);var q=a.i(37512);let r={"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor CLI","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},s={"claude-code":"claude-code","codex-cli":"codex-cli","copilot-cli":"copilot-cli",cursor:"cursor-cli","gemini-cli":"gemini-cli","rovo-dev":"rovo-dev"},t={"claude-code":"claude","codex-cli":"codex","copilot-cli":"copilot",cursor:"cursor-agent","gemini-cli":"gemini","rovo-dev":"acli"};function u(a,b){return new Promise(c=>{let d,e;switch(a){case"claude-code":d=b,e=["auth","status"];break;case"cursor":d=b,e=["status"];break;case"codex-cli":c(!1);return;case"copilot-cli":default:c(!0);return;case"rovo-dev":{let a=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)("acli",["rovodev","auth","status"],a,a=>{c(!a)});return}}try{let a=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(d,e,a,a=>{c(!a)})}catch{c(!1)}})}async function v(){let a;try{let b=(0,d.resolve)("LoadSettingsUseCase");a=(await b.execute()).agent.type}catch{return{agentType:"unknown",installed:!1,authenticated:!1,label:"Unknown",binaryName:null,installCommand:null,authCommand:null}}let b=r[a]??a,e=s[a]??null,f=t[a]??null;if(!e)return{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:null,installCommand:null,authCommand:null};let i=!1,j=null;try{let a=(0,d.resolve)("ListToolsUseCase"),b=(await a.execute()).find(a=>a.id===e);i=b?.status.status==="available",j=b?.installCommand??null}catch{i=!1}if(!i)return{agentType:a,installed:!1,authenticated:!1,label:b,binaryName:f,installCommand:j,authCommand:f?`Install ${b} first`:null};let k=function(a){let b=(0,h.homedir)();switch(a){case"claude-code":{if(process.env.ANTHROPIC_API_KEY||process.env.CLAUDE_CODE_USE_BEDROCK||process.env.CLAUDE_CODE_USE_VERTEX||process.env.CLAUDE_CODE_OAUTH_TOKEN)return"env-var";let a=(0,c.join)(b,".claude",".credentials.json");return!!(0,g.existsSync)(a)&&"file"}case"codex-cli":if(process.env.OPENAI_API_KEY)return"env-var";return!1;case"cursor":{if(process.env.CURSOR_API_KEY)return"env-var";let a=(0,c.join)(b,".cursor");return!!(0,g.existsSync)(a)&&"file"}case"gemini-cli":{if(process.env.GEMINI_API_KEY||process.env.GOOGLE_API_KEY||process.env.GOOGLE_APPLICATION_CREDENTIALS)return"env-var";let a=(0,c.join)(b,".gemini","google_accounts.json");return!!(0,g.existsSync)(a)&&"file"}case"copilot-cli":{if(process.env.COPILOT_GITHUB_TOKEN||process.env.GH_TOKEN||process.env.GITHUB_TOKEN)return"env-var";let a=process.env.COPILOT_HOME?(0,c.join)(process.env.COPILOT_HOME,"config.json"):(0,c.join)(b,".copilot","config.json");return!!(0,g.existsSync)(a)&&"file"}case"rovo-dev":{if(process.env.ATLASSIAN_API_TOKEN)return"env-var";let a=(0,c.join)(b,".acli");return!!(0,g.existsSync)(a)&&"file"}default:return"env-var"}}(a);if("env-var"===k)return{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:f,installCommand:j,authCommand:null};if("file"===k){let c=!0;return f&&(c=await u(a,f)),{agentType:a,installed:!0,authenticated:c,label:b,binaryName:f,installCommand:j,authCommand:c?null:f}}return f&&await u(a,f)?{agentType:a,installed:!0,authenticated:!0,label:b,binaryName:f,installCommand:j,authCommand:null}:{agentType:a,installed:!0,authenticated:!1,label:b,binaryName:f,installCommand:j,authCommand:f}}function w(a,b){return new Promise(c=>{try{let d=q.IS_WINDOWS?{timeout:5e3,windowsHide:!0}:{timeout:5e3};(0,i.execFile)(a,b,d,(a,b)=>{if(a)return void c({installed:!1,version:null});let d=b.match(/(\d+\.\d+(?:\.\d+)?)/);c({installed:!0,version:d?.[1]??null})})}catch{c({installed:!1,version:null})}})}async function x(){let[a,b,c]=await Promise.all([w("git",["--version"]),w("gh",["--version"]),(async()=>{try{let a=(0,d.resolve)("ListToolsUseCase");return await a.execute()}catch{return[]}})()]),e=c.find(a=>"git"===a.id),f=c.find(a=>"gh"===a.id);return{git:{...a,installCommand:e?.installCommand??null,installUrl:e?.website??"https://git-scm.com"},gh:{...b,installCommand:f?.installCommand??null,installUrl:f?.website??"https://cli.github.com"}}}async function y(a){let b=(0,d.resolve)("IFeatureRepository"),c=await b.findById(a);return c?{name:c.name,description:c.description}:null}async function z(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,d.resolve)("ArchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to archive feature"}}}async function A(a,b,c,e){if(!a?.trim())return{error:"id is required"};try{let f=(0,d.resolve)("DeleteFeatureUseCase"),g={};return void 0!==b&&(g.cleanup=b),void 0!==c&&(g.cascadeDelete=c),void 0!==e&&(g.closePr=e),{feature:Object.keys(g).length>0?await f.execute(a,g):await f.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to delete feature"}}}async function B(a){if(!a.trim())return{resumed:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("ResumeFeatureUseCase");return await b.execute(a),{resumed:!0}}catch(a){return{resumed:!1,error:a instanceof Error?a.message:"Failed to resume feature"}}}async function C(a){if(!a.trim())return{started:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("StartFeatureUseCase");return await b.execute(a),{started:!0}}catch(a){return{started:!1,error:a instanceof Error?a.message:"Failed to start feature"}}}async function D(a){if(!a.trim())return{stopped:!1,error:"Feature id is required"};try{let b=(0,d.resolve)("IAgentRunRepository"),c=(await b.list()).find(b=>b.featureId===a&&"completed"!==b.status&&"failed"!==b.status&&"interrupted"!==b.status&&"cancelled"!==b.status);if(!c)return{stopped:!1,error:"No active agent run found for this feature"};let e=(0,d.resolve)("StopAgentRunUseCase"),f=await e.execute(c.id);if(!f.stopped)return{stopped:!1,error:f.reason};return{stopped:!0}}catch(a){return{stopped:!1,error:a instanceof Error?a.message:"Failed to stop agent"}}}async function E(a){if(!a?.trim())return{error:"id is required"};try{let b=(0,d.resolve)("UnarchiveFeatureUseCase");return{feature:await b.execute(a)}}catch(a){return{error:a instanceof Error?a.message:"Failed to unarchive feature"}}}async function F(a){let{path:b,name:c}=a;if(!b?.trim())return{error:"path is required"};try{let a=(0,d.resolve)("AddRepositoryUseCase");return{repository:await a.execute({path:b,name:c})}}catch(a){return{error:a instanceof Error?a.message:"Failed to add repository"}}}async function G(a){if(!a?.trim())return{success:!1,error:"id is required"};try{let b=(0,d.resolve)("DeleteRepositoryUseCase");return await b.execute(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to delete repository"}}}(0,e.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"002ceffb20ae1d3ac63fd53234e0c6d44252281987",null),a.s(["checkAgentAuth",0,v],9959),(0,e.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"001ddaafa354b0082d657d33e7b50c9078e0f07089",null),a.s(["checkToolStatus",0,x],79124),(0,e.ensureServerEntryExports)([y]),(0,b.registerServerReference)(y,"404c0c951e2ed0084c1b630626b6565caa37516576",null),a.s(["getFeatureMetadata",0,y],29207),(0,e.ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"402c1830f68e5cf809663267102f6f918e87ae16fd",null),a.s(["archiveFeature",0,z],10528),(0,e.ensureServerEntryExports)([A]),(0,b.registerServerReference)(A,"787e4b48cfb35d4de5dc6a79998ad4587ed8a92f09",null),a.s(["deleteFeature",0,A],50845),(0,e.ensureServerEntryExports)([B]),(0,b.registerServerReference)(B,"40baf0ac219033d57f793da8fe74eb8435030d7435",null),a.s(["resumeFeature",0,B],26604),(0,e.ensureServerEntryExports)([C]),(0,b.registerServerReference)(C,"40b742fb0713b7ef0465b8050431742035410e7c64",null),a.s(["startFeature",0,C],54723),(0,e.ensureServerEntryExports)([D]),(0,b.registerServerReference)(D,"40b7762dfbe789b59cb72ba6715e5ec9a56e8c5dc5",null),a.s(["stopFeature",0,D],18942),(0,e.ensureServerEntryExports)([E]),(0,b.registerServerReference)(E,"40d986834a58b0b6eba9c95b1b00072bdbef700171",null),a.s(["unarchiveFeature",0,E],42886),(0,e.ensureServerEntryExports)([F]),(0,b.registerServerReference)(F,"40f5697183d73677b2420b6cd9074a858af1a35468",null),a.s(["addRepository",0,F],49560),(0,e.ensureServerEntryExports)([G]),(0,b.registerServerReference)(G,"404b5e4e49a2b2b4d030994d00736966ba609002df",null),a.s(["deleteRepository",0,G],39353)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map