@shipit-ai/cli 1.173.0 → 1.173.1-pr18.cc1c3ce

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 (250) hide show
  1. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +9 -1
  2. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts +7 -3
  4. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js +6 -5
  6. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
  7. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +10 -0
  8. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +12 -0
  9. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +11 -1
  11. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +10 -2
  12. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +50 -13
  14. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +1 -1
  15. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +1 -1
  16. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +2 -2
  17. package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +1 -1
  18. package/dist/src/presentation/web/app/mcp-servers/page.js +3 -1
  19. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts +19 -0
  20. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts.map +1 -0
  21. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.js +108 -0
  22. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts +11 -0
  23. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts.map +1 -0
  24. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.js +18 -0
  25. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.js +1 -1
  26. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +2 -2
  27. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -1
  28. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +15 -9
  29. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +1 -1
  30. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +1 -1
  31. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +2 -1
  32. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -1
  33. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +3 -4
  34. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +2 -2
  35. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +17 -13
  36. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +22 -35
  38. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +1 -1
  39. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +7 -8
  41. package/dist/translations/ar/web.json +6 -1
  42. package/dist/translations/de/web.json +6 -1
  43. package/dist/translations/en/web.json +6 -1
  44. package/dist/translations/es/web.json +6 -1
  45. package/dist/translations/fr/web.json +6 -1
  46. package/dist/translations/he/web.json +6 -1
  47. package/dist/translations/pt/web.json +6 -1
  48. package/dist/translations/ru/web.json +6 -1
  49. package/dist/tsconfig.build.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/web/.next/BUILD_ID +1 -1
  52. package/web/.next/build-manifest.json +3 -3
  53. package/web/.next/fallback-build-manifest.json +3 -3
  54. package/web/.next/prerender-manifest.json +3 -3
  55. package/web/.next/required-server-files.js +3 -3
  56. package/web/.next/required-server-files.json +3 -3
  57. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  58. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  61. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  64. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  67. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  70. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  73. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  76. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  79. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  82. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  85. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  86. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  88. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  91. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  92. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  94. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  97. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  98. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/_global-error.html +1 -1
  100. package/web/.next/server/app/_global-error.rsc +1 -1
  101. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  102. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  103. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  104. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  105. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  106. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  107. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  108. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  110. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  111. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  112. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  113. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  114. package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +13 -13
  115. package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -1
  116. package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
  118. package/web/.next/server/app/plugins/page.js.nft.json +1 -1
  119. package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
  121. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  122. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  123. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  124. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  125. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  127. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  128. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  129. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  130. package/web/.next/server/app/version/page.js.nft.json +1 -1
  131. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  133. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  134. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  136. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js +10 -0
  138. package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js.map +1 -0
  139. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  140. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  142. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js +3 -0
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js.map +1 -0
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/_0-09vq7._.js +1 -1
  164. package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  166. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  168. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_096x3u~._.js +1 -1
  170. package/web/.next/server/chunks/ssr/_096x3u~._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  172. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  174. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/_0av5r-b._.js +3 -0
  176. package/web/.next/server/chunks/ssr/_0av5r-b._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/{_0i0_q..._.js → _0b~rt5k._.js} +2 -2
  178. package/web/.next/server/chunks/ssr/{_0i0_q..._.js.map → _0b~rt5k._.js.map} +1 -1
  179. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  180. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  182. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  183. package/web/.next/server/chunks/ssr/_0fswe4r._.js +3 -0
  184. package/web/.next/server/chunks/ssr/_0fswe4r._.js.map +1 -0
  185. package/web/.next/server/chunks/ssr/{_052jfzq._.js → _0g36k1q._.js} +2 -2
  186. package/web/.next/server/chunks/ssr/{_052jfzq._.js.map → _0g36k1q._.js.map} +1 -1
  187. package/web/.next/server/chunks/ssr/{_0wl~vw0._.js → _0ha3y7r._.js} +2 -2
  188. package/web/.next/server/chunks/ssr/{_0wl~vw0._.js.map → _0ha3y7r._.js.map} +1 -1
  189. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  190. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  192. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  194. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  196. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  198. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  200. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  202. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  204. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  205. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +1 -1
  206. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -1
  207. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
  208. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  210. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  212. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  214. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  215. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  216. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  217. package/web/.next/server/middleware-build-manifest.js +3 -3
  218. package/web/.next/server/pages/500.html +1 -1
  219. package/web/.next/server/server-reference-manifest.js +1 -1
  220. package/web/.next/server/server-reference-manifest.json +57 -57
  221. package/web/.next/static/chunks/{0.zpc6-geo2pp.js → 0-479g9ihl1ga.js} +1 -1
  222. package/web/.next/static/chunks/{0yz729_n37__3.js → 02ow0rjxjqsob.js} +1 -1
  223. package/web/.next/static/chunks/{0j-doxnxl43yu.js → 04mde8apvce...js} +1 -1
  224. package/web/.next/static/chunks/05uewqqwl93w2.js +8 -0
  225. package/web/.next/static/chunks/{0xmqx8qtb0njk.js → 06fk~iz2u90ux.js} +1 -1
  226. package/web/.next/static/chunks/{0x_xky1fcolbm.js → 08-x1y93o~z1u.js} +1 -1
  227. package/web/.next/static/chunks/{0sgbbtfp4hspl.js → 0gz0lgz7pvrb5.js} +1 -1
  228. package/web/.next/static/chunks/0h2nh2s2b3ma2.css +1 -0
  229. package/web/.next/static/chunks/{156lo29queyhm.js → 0irjgz-p.9i6s.js} +1 -1
  230. package/web/.next/static/chunks/{09ix490-00s4x.js → 0isdv5nl9ixzx.js} +1 -1
  231. package/web/.next/static/chunks/{0sliw7pn2d_57.js → 0nkxltjer~us7.js} +1 -1
  232. package/web/.next/static/chunks/{0ghc-76~~v-cj.js → 0nw5kg.d92o~s.js} +2 -2
  233. package/web/.next/static/chunks/{11e3u3wkmfedd.js → 0~z22-y-2-50b.js} +1 -1
  234. package/web/.next/static/chunks/{0y~ts1~5mpg5h.js → 163wx0qvsyhgb.js} +1 -1
  235. package/web/.next/static/chunks/16mt3g3q98v_k.js +1 -0
  236. package/web/.next/static/chunks/173rm.h7j3_7c.js +1 -0
  237. package/web/.next/static/chunks/{0ferlvybqru33.js → 17t4j5hdn_bcj.js} +2 -2
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +0 -3
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +0 -1
  240. package/web/.next/server/chunks/ssr/_0ia4o6_._.js +0 -3
  241. package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +0 -1
  242. package/web/.next/server/chunks/ssr/_0o.xc6x._.js +0 -3
  243. package/web/.next/server/chunks/ssr/_0o.xc6x._.js.map +0 -1
  244. package/web/.next/static/chunks/00h433i5-1v_-.css +0 -1
  245. package/web/.next/static/chunks/08tp-_of5~bcc.js +0 -1
  246. package/web/.next/static/chunks/0hkfexnwbsfyg.js +0 -1
  247. package/web/.next/static/chunks/0zy_h1essdthk.js +0 -1
  248. /package/web/.next/static/{8igTmoo1g4DAuDf2Tup6h → cK5RMkxfAPELBU1fhTnIV}/_buildManifest.js +0 -0
  249. /package/web/.next/static/{8igTmoo1g4DAuDf2Tup6h → cK5RMkxfAPELBU1fhTnIV}/_clientMiddlewareManifest.js +0 -0
  250. /package/web/.next/static/{8igTmoo1g4DAuDf2Tup6h → cK5RMkxfAPELBU1fhTnIV}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},64440,(a,b,c)=>{"use strict";b.exports=a.r(18622)},53083,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored["react-ssr"].ReactJsxRuntime},11321,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored["react-ssr"].React},69214,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored["react-ssr"].ReactDOM},43827,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored["react-ssr"].ReactServerDOMTurbopackClient},25095,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.AppRouterContext},44213,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.HooksClientContext},49067,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.ServerInsertedHtml},90920,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["Input",0,function({className:a,type:d,...e}){return(0,b.jsx)("input",{type:d,"data-slot":"input",className:(0,c.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...e})}])},50950,a=>{"use strict";let b=(0,a.i(97624).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],50950)},41305,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(59653),e=a.i(95819),f=a.i(81139),g=a.i(73490),h=a.i(30419),i=a.i(60380),j=a.i(47427),k=a.i(55277),l="Tabs",[m,n]=(0,e.createContextScope)(l,[f.createRovingFocusGroupScope]),o=(0,f.createRovingFocusGroupScope)(),[p,q]=m(l),r=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:m="horizontal",dir:n,activationMode:o="automatic",...q}=a,r=(0,i.useDirection)(n),[s,t]=(0,j.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:l});return(0,b.jsx)(p,{scope:d,baseId:(0,k.useId)(),value:s,onValueChange:t,orientation:m,dir:r,activationMode:o,children:(0,b.jsx)(h.Primitive.div,{dir:r,"data-orientation":m,...q,ref:c})})});r.displayName=l;var s="TabsList",t=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...g}=a,i=q(s,d),j=o(d);return(0,b.jsx)(f.Root,{asChild:!0,...j,orientation:i.orientation,dir:i.dir,loop:e,children:(0,b.jsx)(h.Primitive.div,{role:"tablist","aria-orientation":i.orientation,...g,ref:c})})});t.displayName=s;var u="TabsTrigger",v=c.forwardRef((a,c)=>{let{__scopeTabs:e,value:g,disabled:i=!1,...j}=a,k=q(u,e),l=o(e),m=y(k.baseId,g),n=z(k.baseId,g),p=g===k.value;return(0,b.jsx)(f.Item,{asChild:!0,...l,focusable:!i,active:p,children:(0,b.jsx)(h.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":n,"data-state":p?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:m,...j,ref:c,onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,a=>{i||0!==a.button||!1!==a.ctrlKey?a.preventDefault():k.onValueChange(g)}),onKeyDown:(0,d.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&k.onValueChange(g)}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==k.activationMode;p||i||!a||k.onValueChange(g)})})})});v.displayName=u;var w="TabsContent",x=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:i,children:j,...k}=a,l=q(w,e),m=y(l.baseId,f),n=z(l.baseId,f),o=f===l.value,p=c.useRef(o);return c.useEffect(()=>{let a=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(g.Presence,{present:i||o,children:({present:c})=>(0,b.jsx)(h.Primitive.div,{"data-state":o?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":m,hidden:!c,id:n,tabIndex:0,...k,ref:d,style:{...a.style,animationDuration:p.current?"0s":void 0},children:c&&j})})});function y(a,b){return`${a}-trigger-${b}`}function z(a,b){return`${a}-content-${b}`}x.displayName=w,a.s(["Content",0,x,"List",0,t,"Root",0,r,"Tabs",0,r,"TabsContent",0,x,"TabsList",0,t,"TabsTrigger",0,v,"Trigger",0,v,"createTabsScope",0,n],70500);var A=a.i(70500),A=A,B=a.i(85536);let C=A.Root,D=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(A.List,{ref:d,className:(0,B.cn)("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",a),...c}));D.displayName=A.List.displayName;let E=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(A.Trigger,{ref:d,className:(0,B.cn)("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",a),...c}));E.displayName=A.Trigger.displayName;let F=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(A.Content,{ref:d,className:(0,B.cn)("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",a),...c}));F.displayName=A.Content.displayName,a.s(["Tabs",0,C,"TabsContent",0,F,"TabsList",0,D,"TabsTrigger",0,E],41305)},87638,a=>{"use strict";let b=(0,a.i(97624).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",0,b],87638)},34948,a=>{"use strict";let b=(0,a.i(97624).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,b],34948)},73952,a=>{"use strict";let b=(0,a.i(97624).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);a.s(["MessageSquare",0,b],73952)},77213,a=>{"use strict";let b=(0,a.i(97624).default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);a.s(["Globe",0,b],77213)},47068,a=>{"use strict";let b=(0,a.i(97624).default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);a.s(["default",0,b])},7481,a=>{"use strict";let b=(0,a.i(97624).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",0,b],7481)},85257,a=>{"use strict";let b=(0,a.i(97624).default)("blocks",[["path",{d:"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2",key:"1ah6g2"}],["rect",{x:"14",y:"2",width:"8",height:"8",rx:"1",key:"88lufb"}]]);a.s(["Blocks",0,b],85257)},6168,a=>{"use strict";let b=(0,a.i(97624).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);a.s(["Wrench",0,b],6168)},12729,a=>{"use strict";let b=(0,a.i(97624).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);a.s(["Puzzle",0,b],12729)},47471,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(23847);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},58484,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},91909,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(53083),e=a.r(69214),f=a.r(56704),g=a.r(58484),h=a.r(99760);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},66584,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(53083),e=a.r(11321),f=a.r(47471),g=a.r(91909);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},18630,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(63652)._(a.r(66584));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},21434,34379,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(18630),e=a.i(20901),f=a.i(52313),g=a.i(45670),h=a.i(18948);let i=(0,d.default)(async()=>{},{loadableGenerated:{modules:[19454]},ssr:!1,loading:()=>(0,b.jsx)(j,{})});function j(){return(0,b.jsx)("div",{className:"flex h-full w-full items-center justify-center",children:(0,b.jsx)(e.LoaderCircle,{className:"text-muted-foreground h-8 w-8 animate-spin"})})}async function k(a){let b=new URLSearchParams;a&&b.set("path",a);let c=await fetch(`/api/directory/list?${b.toString()}`);if(!c.ok)throw Error((await c.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return c.json()}a.s(["ReactFileManagerDialog",0,function({open:a,onOpenChange:d,onSelect:e,initialPath:j}){let[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(null),t=(0,c.useRef)(!1),u=(0,c.useCallback)(async a=>{q(!0),s(null);try{let b=await k(a);m(b.entries),o(b.currentPath)}catch(b){let a=b instanceof Error?b.message:"Failed to load directory";f.toast.error(a)}finally{q(!1)}},[]);(0,c.useEffect)(()=>{a&&!t.current&&(t.current=!0,u(j)),a||(t.current=!1)},[a,j,u]);let v=(0,c.useCallback)(a=>{let b=a.absolutePath;a.isDirectory&&b&&u(b)},[u]),w=(0,c.useCallback)(a=>{1===a.length&&a[0].isDirectory?s(a[0].absolutePath??null):s(null)},[]);function x(){e(null),d(!1)}return(0,b.jsx)(g.Dialog,{open:a,onOpenChange:a=>{a||x()},children:(0,b.jsxs)(g.DialogContent,{className:"flex h-[95dvh] max-w-[95vw] flex-col",onCloseAutoFocus:a=>a.preventDefault(),children:[(0,b.jsxs)(g.DialogHeader,{children:[(0,b.jsx)(g.DialogTitle,{children:"Select Folder"}),(0,b.jsx)(g.DialogDescription,{className:"truncate font-mono text-xs",children:n||"Loading..."})]}),(0,b.jsx)("div",{className:"shipit-ai-file-manager min-h-0 flex-1 overflow-hidden rounded-md border",children:(0,b.jsx)(i,{files:l.map(a=>({name:a.name,isDirectory:!0,path:`/${a.name}`,absolutePath:a.path,updatedAt:a.updatedAt})),isLoading:p,height:"100%",width:"100%",layout:"list",enableFilePreview:!1,permissions:{upload:!1,delete:!1,create:!1,download:!1,copy:!1,move:!1,rename:!1},onFileOpen:v,onSelectionChange:w,onRefresh:()=>u(n)},n)}),(0,b.jsxs)(g.DialogFooter,{children:[(0,b.jsx)(h.Button,{variant:"outline",onClick:x,children:"Cancel"}),(0,b.jsx)(h.Button,{variant:"secondary",onClick:function(){n&&(e(n),d(!1))},disabled:!n,children:"Select Current Folder"}),(0,b.jsx)(h.Button,{onClick:function(){r&&(e(r),d(!1))},disabled:!r,children:"Select Folder"})]})]})})}],34379),a.s([],21434)},1377,a=>{"use strict";var b=a.i(6120);let c=(0,b.createServerReference)("003a0801a539b9c91bee1ddcd74fc281846133c1b4",b.callServer,void 0,b.findSourceMapURL,"pickFolder");async function d(){let a=await c();if(a.error)throw Error(a.error);return a.path}a.s(["pickFolder",0,d],1377)},53759,a=>{"use strict";let b=(0,a.i(97624).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);a.s(["GitFork",0,b],53759)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0b~nfa6._.js.map
@@ -1 +0,0 @@
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/server/route-modules/app-page/module.compiled.js","../../../../../../../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/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.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/server/route-modules/app-page/vendored/ssr/react.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/server/route-modules/app-page/vendored/ssr/react-dom.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/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.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/server/route-modules/app-page/vendored/contexts/app-router-context.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/server/route-modules/app-page/vendored/contexts/hooks-client-context.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/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../../../../src/presentation/web/components/ui/input.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/search.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-tabs%401.1.13_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Breact%40_2ad0945e3cb98dc5bbfaaf29c105e977/node_modules/%40radix-ui/react-tabs/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/tabs.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/bot.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/copy.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/message-square.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/globe.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/server.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/settings.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/blocks.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/wrench.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/puzzle.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/lazy-dynamic/dynamic-bailout-to-csr.tsx","../../../../../../../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/encode-uri-path.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/lazy-dynamic/preload-chunks.tsx","../../../../../../../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/lazy-dynamic/loadable.tsx","../../../../../../../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/app-dynamic.tsx","../../../../../../../src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aac4890%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/add-repository-button/pick-folder.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-fork.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium 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 { Input };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\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 Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Tabs as TabsPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1',\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 8V4H8', key: 'hb8ula' }],\n ['rect', { width: '16', height: '12', x: '4', y: '8', rx: '2', key: 'enze0r' }],\n ['path', { d: 'M2 14h2', key: 'vft8re' }],\n ['path', { d: 'M20 14h2', key: '4cs60a' }],\n ['path', { d: 'M15 13v2', key: '1xurst' }],\n ['path', { d: 'M9 13v2', key: 'rq6x2g' }],\n];\n\n/**\n * @component @name Bot\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgOFY0SDgiIC8+CiAgPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjEyIiB4PSI0IiB5PSI4IiByeD0iMiIgLz4KICA8cGF0aCBkPSJNMiAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxNGgyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxM3YyIiAvPgogIDxwYXRoIGQ9Ik05IDEzdjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bot\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 Bot = createLucideIcon('bot', __iconNode);\n\nexport default Bot;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n];\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\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 Copy = createLucideIcon('copy', __iconNode);\n\nexport default Copy;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n key: '18887p',\n },\n ],\n];\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\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 MessageSquare = createLucideIcon('message-square', __iconNode);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n];\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\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 Globe = createLucideIcon('globe', __iconNode);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '20', height: '8', x: '2', y: '2', rx: '2', ry: '2', key: 'ngkwjq' }],\n ['rect', { width: '20', height: '8', x: '2', y: '14', rx: '2', ry: '2', key: 'iecqi9' }],\n ['line', { x1: '6', x2: '6.01', y1: '6', y2: '6', key: '16zg32' }],\n ['line', { x1: '6', x2: '6.01', y1: '18', y2: '18', key: 'nzw8ys' }],\n];\n\n/**\n * @component @name Server\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iOCIgeD0iMiIgeT0iMiIgcng9IjIiIHJ5PSIyIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiB4PSIyIiB5PSIxNCIgcng9IjIiIHJ5PSIyIiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjYiIHkyPSI2IiAvPgogIDxsaW5lIHgxPSI2IiB4Mj0iNi4wMSIgeTE9IjE4IiB5Mj0iMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/server\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 Server = createLucideIcon('server', __iconNode);\n\nexport default Server;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915',\n key: '1i5ecw',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n];\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS42NzEgNC4xMzZhMi4zNCAyLjM0IDAgMCAxIDQuNjU5IDAgMi4zNCAyLjM0IDAgMCAwIDMuMzE5IDEuOTE1IDIuMzQgMi4zNCAwIDAgMSAyLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMCAwIDMuODMxIDIuMzQgMi4zNCAwIDAgMS0yLjMzIDQuMDMzIDIuMzQgMi4zNCAwIDAgMC0zLjMxOSAxLjkxNSAyLjM0IDIuMzQgMCAwIDEtNC42NTkgMCAyLjM0IDIuMzQgMCAwIDAtMy4zMi0xLjkxNSAyLjM0IDIuMzQgMCAwIDEtMi4zMy00LjAzMyAyLjM0IDIuMzQgMCAwIDAgMC0zLjgzMUEyLjM0IDIuMzQgMCAwIDEgNi4zNSA2LjA1MWEyLjM0IDIuMzQgMCAwIDAgMy4zMTktMS45MTUiIC8+CiAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/settings\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 Settings = createLucideIcon('settings', __iconNode);\n\nexport default Settings;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2',\n key: '1ah6g2',\n },\n ],\n ['rect', { x: '14', y: '2', width: '8', height: '8', rx: '1', key: '88lufb' }],\n];\n\n/**\n * @component @name Blocks\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMjJWN2ExIDEgMCAwIDAtMS0xSDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LTVhMSAxIDAgMCAwLTEtMUgyIiAvPgogIDxyZWN0IHg9IjE0IiB5PSIyIiB3aWR0aD0iOCIgaGVpZ2h0PSI4IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/blocks\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 Blocks = createLucideIcon('blocks', __iconNode);\n\nexport default Blocks;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n key: '1ngwbx',\n },\n ],\n];\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNyA2LjNhMSAxIDAgMCAwIDAgMS40bDEuNiAxLjZhMSAxIDAgMCAwIDEuNCAwbDMuMTA2LTMuMTA1Yy4zMi0uMzIyLjg2My0uMjIuOTgzLjIxOGE2IDYgMCAwIDEtOC4yNTkgNy4wNTdsLTcuOTEgNy45MWExIDEgMCAwIDEtMi45OTktM2w3LjkxLTcuOTFhNiA2IDAgMCAxIDcuMDU3LTguMjU5Yy40MzguMTIuNTQuNjYyLjIxOS45ODR6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wrench\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 Wrench = createLucideIcon('wrench', __iconNode);\n\nexport default Wrench;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z',\n key: 'w46dr5',\n },\n ],\n];\n\n/**\n * @component @name Puzzle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuMzkgNC4zOWExIDEgMCAwIDAgMS42OC0uNDc0IDIuNSAyLjUgMCAxIDEgMy4wMTQgMy4wMTUgMSAxIDAgMCAwLS40NzQgMS42OGwxLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAwIDMuNDE0TDE5LjYxIDE1LjM5YTEgMSAwIDAgMS0xLjY4LS40NzQgMi41IDIuNSAwIDEgMC0zLjAxNCAzLjAxNSAxIDEgMCAwIDEgLjQ3NCAxLjY4bC0xLjY4MyAxLjY4MmEyLjQxNCAyLjQxNCAwIDAgMS0zLjQxNCAwTDguNjEgMTkuNjFhMSAxIDAgMCAwLTEuNjguNDc0IDIuNSAyLjUgMCAxIDEtMy4wMTQtMy4wMTUgMSAxIDAgMCAwIC40NzQtMS42OGwtMS42ODMtMS42ODJhMi40MTQgMi40MTQgMCAwIDEgMC0zLjQxNEw0LjM5IDguNjFhMSAxIDAgMCAxIDEuNjguNDc0IDIuNSAyLjUgMCAxIDAgMy4wMTQtMy4wMTUgMSAxIDAgMCAxLS40NzQtMS42OGwxLjY4My0xLjY4MmEyLjQxNCAyLjQxNCAwIDAgMSAzLjQxNCAweiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/puzzle\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 Puzzle = createLucideIcon('puzzle', __iconNode);\n\nexport default Puzzle;\n","'use client'\n\nimport type { ReactElement } from 'react'\nimport { BailoutToCSRError } from './bailout-to-csr'\n\ninterface BailoutToCSRProps {\n reason: string\n children: ReactElement\n}\n\n/**\n * If rendered on the server, this component throws an error\n * to signal Next.js that it should bail out to client-side rendering instead.\n */\nexport function BailoutToCSR({ reason, children }: BailoutToCSRProps) {\n if (typeof window === 'undefined') {\n throw new BailoutToCSRError(reason)\n }\n\n return children\n}\n","export function encodeURIPath(file: string) {\n return file\n .split('/')\n .map((p) => encodeURIComponent(p))\n .join('/')\n}\n","'use client'\n\nimport { preload } from 'react-dom'\n\nimport { workAsyncStorage } from '../../../server/app-render/work-async-storage.external'\nimport { encodeURIPath } from '../encode-uri-path'\nimport { getAssetTokenQuery } from '../deployment-id'\n\nexport function PreloadChunks({\n moduleIds,\n}: {\n moduleIds: string[] | undefined\n}) {\n // Early return in client compilation and only load requestStore on server side\n if (typeof window !== 'undefined') {\n return null\n }\n\n const workStore = workAsyncStorage.getStore()\n if (workStore === undefined) {\n return null\n }\n\n const allFiles = []\n\n // Search the current dynamic call unique key id in react loadable manifest,\n // and find the corresponding CSS files to preload\n if (workStore.reactLoadableManifest && moduleIds) {\n const manifest = workStore.reactLoadableManifest\n for (const key of moduleIds) {\n if (!manifest[key]) continue\n const chunks = manifest[key].files\n allFiles.push(...chunks)\n }\n }\n\n if (allFiles.length === 0) {\n return null\n }\n\n const query = getAssetTokenQuery()\n\n return (\n <>\n {allFiles.map((chunk) => {\n const href = `${workStore.assetPrefix}/_next/${encodeURIPath(chunk)}${query}`\n const isCss = chunk.endsWith('.css')\n // If it's stylesheet we use `precedence` o help hoist with React Float.\n // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree.\n // The `preload` for stylesheet is not optional.\n if (isCss) {\n return (\n <link\n key={chunk}\n // @ts-ignore\n precedence=\"dynamic\"\n href={href}\n rel=\"stylesheet\"\n as=\"style\"\n nonce={workStore.nonce}\n />\n )\n } else {\n // If it's script we use ReactDOM.preload to preload the resources\n preload(href, {\n as: 'script',\n fetchPriority: 'low',\n nonce: workStore.nonce,\n })\n return null\n }\n })}\n </>\n )\n}\n","import { Suspense, Fragment, lazy } from 'react'\nimport { BailoutToCSR } from './dynamic-bailout-to-csr'\nimport type { ComponentModule } from './types'\nimport { PreloadChunks } from './preload-chunks'\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule<P>(\n mod: React.ComponentType<P> | ComponentModule<P> | undefined\n): {\n default: React.ComponentType<P>\n} {\n // Check \"default\" prop before accessing it, as it could be client reference proxy that could break it reference.\n // Cases:\n // mod: { default: Component }\n // mod: Component\n // mod: { default: proxy(Component) }\n // mod: proxy(Component)\n const hasDefault = mod && 'default' in mod\n return {\n default: hasDefault\n ? (mod as ComponentModule<P>).default\n : (mod as React.ComponentType<P>),\n }\n}\n\nconst defaultOptions = {\n loader: () => Promise.resolve(convertModule(() => null)),\n loading: null,\n ssr: true,\n}\n\ninterface LoadableOptions {\n loader?: () => Promise<React.ComponentType<any> | ComponentModule<any>>\n loading?: React.ComponentType<any> | null\n ssr?: boolean\n modules?: string[]\n}\n\nfunction Loadable(options: LoadableOptions) {\n const opts = { ...defaultOptions, ...options }\n const Lazy = lazy(() => opts.loader().then(convertModule))\n const Loading = opts.loading\n\n function LoadableComponent(props: any) {\n const fallbackElement = Loading ? (\n <Loading isLoading={true} pastDelay={true} error={null} />\n ) : null\n\n // If it's non-SSR or provided a loading component, wrap it in a suspense boundary\n const hasSuspenseBoundary = !opts.ssr || !!opts.loading\n const Wrap = hasSuspenseBoundary ? Suspense : Fragment\n const wrapProps = hasSuspenseBoundary ? { fallback: fallbackElement } : {}\n const children = opts.ssr ? (\n <>\n {/* During SSR, we need to preload the CSS from the dynamic component to avoid flash of unstyled content */}\n {typeof window === 'undefined' ? (\n <PreloadChunks moduleIds={opts.modules} />\n ) : null}\n <Lazy {...props} />\n </>\n ) : (\n <BailoutToCSR reason=\"next/dynamic\">\n <Lazy {...props} />\n </BailoutToCSR>\n )\n\n return <Wrap {...wrapProps}>{children}</Wrap>\n }\n\n LoadableComponent.displayName = 'LoadableComponent'\n\n return LoadableComponent\n}\n\nexport default Loadable\n","import type React from 'react'\nimport type { JSX } from 'react'\nimport Loadable from './lazy-dynamic/loadable'\n\nimport type {\n LoadableGeneratedOptions,\n DynamicOptionsLoadingProps,\n Loader,\n LoaderComponent,\n} from './lazy-dynamic/types'\n\nexport {\n type LoadableGeneratedOptions,\n type DynamicOptionsLoadingProps,\n type Loader,\n type LoaderComponent,\n}\n\nexport type DynamicOptions<P = {}> = LoadableGeneratedOptions & {\n loading?: () => JSX.Element | null\n loader?: Loader<P>\n loadableGenerated?: LoadableGeneratedOptions\n modules?: string[]\n ssr?: boolean\n}\n\nexport type LoadableOptions<P = {}> = DynamicOptions<P>\n\nexport type LoadableFn<P = {}> = (\n opts: LoadableOptions<P>\n) => React.ComponentType<P>\n\nexport type LoadableComponent<P = {}> = React.ComponentType<P>\n\nexport default function dynamic<P = {}>(\n dynamicOptions: DynamicOptions<P> | Loader<P>,\n options?: DynamicOptions<P>\n): React.ComponentType<P> {\n const loadableOptions: LoadableOptions<P> = {}\n\n if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n }\n\n const mergedOptions = {\n ...loadableOptions,\n ...options,\n }\n\n return Loadable({\n ...mergedOptions,\n modules: mergedOptions.loadableGenerated?.modules,\n })\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport dynamic from 'next/dynamic';\nimport { LoaderCircle } from 'lucide-react';\nimport { toast } from 'sonner';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/components/ui/dialog';\nimport { Button } from '@/components/ui/button';\nimport type { FileManagerFile } from '@cubone/react-file-manager';\nimport type {\n DirectoryEntry,\n DirectoryListResponse,\n ReactFileManagerDialogProps,\n} from './react-file-manager-dialog-config';\n\nconst FileManager = dynamic(\n () => import('@cubone/react-file-manager').then((mod) => mod.FileManager),\n { ssr: false, loading: () => <FileManagerSkeleton /> }\n);\n\nfunction FileManagerSkeleton() {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <LoaderCircle className=\"text-muted-foreground h-8 w-8 animate-spin\" />\n </div>\n );\n}\n\nfunction toFileManagerFiles(entries: DirectoryEntry[]) {\n // The @cubone/react-file-manager component filters visible files by matching\n // file.path === currentPath + \"/\" + file.name. Since we dynamically fetch\n // directory contents on each navigation, we present all entries at the\n // FileManager's root level by using path = \"/\" + name. The real absolute\n // path is preserved in a custom `absolutePath` field for selection/navigation.\n return entries.map((entry) => ({\n name: entry.name,\n isDirectory: true as const,\n path: `/${entry.name}`,\n absolutePath: entry.path,\n updatedAt: entry.updatedAt,\n }));\n}\n\nasync function fetchDirectory(dirPath?: string): Promise<DirectoryListResponse> {\n const params = new URLSearchParams();\n if (dirPath) {\n params.set('path', dirPath);\n }\n const res = await fetch(`/api/directory/list?${params.toString()}`);\n if (!res.ok) {\n const body = await res.json().catch(() => ({ error: 'Failed to load directory' }));\n throw new Error(body.error ?? 'Failed to load directory');\n }\n return res.json();\n}\n\nexport function ReactFileManagerDialog({\n open,\n onOpenChange,\n onSelect,\n initialPath,\n}: ReactFileManagerDialogProps) {\n const [entries, setEntries] = useState<DirectoryEntry[]>([]);\n const [currentPath, setCurrentPath] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [selectedPath, setSelectedPath] = useState<string | null>(null);\n const hasLoadedRef = useRef(false);\n\n const loadDirectory = useCallback(async (dirPath?: string) => {\n setIsLoading(true);\n setSelectedPath(null);\n try {\n const data = await fetchDirectory(dirPath);\n setEntries(data.entries);\n setCurrentPath(data.currentPath);\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load directory';\n toast.error(message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n useEffect(() => {\n if (open && !hasLoadedRef.current) {\n hasLoadedRef.current = true;\n loadDirectory(initialPath);\n }\n if (!open) {\n hasLoadedRef.current = false;\n }\n }, [open, initialPath, loadDirectory]);\n\n const handleFileOpen = useCallback(\n (file: FileManagerFile) => {\n // Use absolutePath (real filesystem path) for navigation, not the\n // virtual path used by the FileManager tree.\n const realPath = file.absolutePath;\n if (file.isDirectory && realPath) {\n loadDirectory(realPath);\n }\n },\n [loadDirectory]\n );\n\n const handleSelectionChange = useCallback((files: FileManagerFile[]) => {\n if (files.length === 1 && files[0].isDirectory) {\n const realPath = files[0].absolutePath;\n setSelectedPath(realPath ?? null);\n } else {\n setSelectedPath(null);\n }\n }, []);\n\n function handleSelect() {\n if (selectedPath) {\n onSelect(selectedPath);\n onOpenChange(false);\n }\n }\n\n function handleSelectCurrentPath() {\n if (currentPath) {\n onSelect(currentPath);\n onOpenChange(false);\n }\n }\n\n function handleCancel() {\n onSelect(null);\n onOpenChange(false);\n }\n\n return (\n <Dialog\n open={open}\n onOpenChange={(isOpen) => {\n if (!isOpen) {\n handleCancel();\n }\n }}\n >\n <DialogContent\n className=\"flex h-[95dvh] max-w-[95vw] flex-col\"\n onCloseAutoFocus={(e) => e.preventDefault()}\n >\n <DialogHeader>\n <DialogTitle>Select Folder</DialogTitle>\n <DialogDescription className=\"truncate font-mono text-xs\">\n {currentPath || 'Loading...'}\n </DialogDescription>\n </DialogHeader>\n <div className=\"shipit-ai-file-manager min-h-0 flex-1 overflow-hidden rounded-md border\">\n <FileManager\n key={currentPath}\n files={toFileManagerFiles(entries)}\n isLoading={isLoading}\n height=\"100%\"\n width=\"100%\"\n layout=\"list\"\n enableFilePreview={false}\n permissions={{\n upload: false,\n delete: false,\n create: false,\n download: false,\n copy: false,\n move: false,\n rename: false,\n }}\n onFileOpen={handleFileOpen}\n onSelectionChange={handleSelectionChange}\n onRefresh={() => loadDirectory(currentPath)}\n />\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button variant=\"secondary\" onClick={handleSelectCurrentPath} disabled={!currentPath}>\n Select Current Folder\n </Button>\n <Button onClick={handleSelect} disabled={!selectedPath}>\n Select Folder\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"003a0801a539b9c91bee1ddcd74fc281846133c1b4\":{\"name\":\"pickFolder\"}},\"src/presentation/web/app/actions/pick-folder.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"003a0801a539b9c91bee1ddcd74fc281846133c1b4\",callServer,void 0,findSourceMapURL,\"pickFolder\");export{$$RSC_SERVER_ACTION_0 as pickFolder};","import { pickFolder as pickFolderAction } from '@/app/actions/pick-folder';\n\n/**\n * Opens a native OS folder picker dialog via server action.\n * Returns the selected absolute path, or null if the user cancelled.\n */\nexport async function pickFolder(): Promise<string | null> {\n const result = await pickFolderAction();\n\n if (result.error) {\n throw new Error(result.error);\n }\n\n return result.path;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '18', r: '3', key: '1mpf1b' }],\n ['circle', { cx: '6', cy: '6', r: '3', key: '1lh9wr' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['path', { d: 'M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9', key: '1uq4wg' }],\n ['path', { d: 'M12 12v3', key: '158kv8' }],\n];\n\n/**\n * @component @name GitFork\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOXYyYzAgLjYtLjQgMS0xIDFIN2MtLjYgMC0xLS40LTEtMVY5IiAvPgogIDxwYXRoIGQ9Ik0xMiAxMnYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-fork\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 GitFork = createLucideIcon('git-fork', __iconNode);\n\nexport default GitFork;\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","ReactDOM","ReactServerDOMTurbopackClient","AppRouterContext","HooksClientContext","ServerInsertedHtml","Input","className","type","props","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","forwardedRef","__scopeTabs","value","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","setValue","prop","onChange","defaultProp","caller","scope","baseId","children","div","ref","displayName","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","asChild","role","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","focusable","active","button","id","onMouseDown","event","ctrlKey","preventDefault","onKeyDown","includes","key","onFocus","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","requestAnimationFrame","current","cancelAnimationFrame","present","hidden","tabIndex","style","animationDuration","Root2","List","Trigger","Content","BailoutToCSR","reason","window","BailoutToCSRError","encodeURIPath","file","split","map","p","encodeURIComponent","join","PreloadChunks","moduleIds","workStore","workAsyncStorage","getStore","undefined","allFiles","reactLoadableManifest","manifest","chunks","files","push","length","query","getAssetTokenQuery","chunk","href","assetPrefix","isCss","endsWith","link","precedence","rel","as","nonce","preload","fetchPriority","convertModule","mod","hasDefault","default","defaultOptions","loader","Promise","resolve","loading","ssr","Loadable","options","opts","Lazy","lazy","then","Loading","LoadableComponent","fallbackElement","isLoading","pastDelay","error","hasSuspenseBoundary","Wrap","Suspense","Fragment","wrapProps","fallback","modules","dynamic","dynamicOptions","loadableOptions","mergedOptions","loadableGenerated","FileManager","FileManagerSkeleton","toFileManagerFiles","entries","entry","name","isDirectory","path","absolutePath","updatedAt","fetchDirectory","dirPath","params","URLSearchParams","set","res","fetch","toString","ok","body","json","catch","Error","ReactFileManagerDialog","open","onOpenChange","onSelect","initialPath","setEntries","currentPath","setCurrentPath","setIsLoading","selectedPath","setSelectedPath","hasLoadedRef","loadDirectory","data","message","handleFileOpen","realPath","handleSelectionChange","handleSelect","handleSelectCurrentPath","handleCancel","isOpen","onCloseAutoFocus","e","height","width","layout","enableFilePreview","permissions","upload","delete","create","download","copy","move","rename","onFileOpen","onSelectionChange","onRefresh","variant","onClick","$$RSC_SERVER_ACTION_0"],"mappings":"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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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tC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAnBtC,AAmBsC,CAlBtC,AAkBsC,CAjBpC,AAiBoC,CAjBpC,AAiB8C,CAAA,AAjB3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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","ignoreList":[0,1,2,3,4,5,6,7,9,10,12,13,14,15,17,18,19,20,21,22,23,24,25,29]}
@@ -1,3 +0,0 @@
1
- module.exports=[8685,a=>{"use strict";let b=(0,a.i(97624).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],8685)},2,a=>{"use strict";let b=(0,a.i(97624).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],2)},78454,a=>{"use strict";a.i(24255),a.s([])},63466,a=>{"use strict";var b=a.i(47068);a.s(["Server",()=>b.default])},38702,16223,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}],16223),a.s([],38702)},84117,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(85536);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("bg-card text-card-foreground editorial-shadow rounded-xl border",a),...c}));e.displayName="Card";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1.5 p-6",a),...c}));f.displayName="CardHeader";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("leading-none font-semibold tracking-tight",a),...c}));g.displayName="CardTitle";let h=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-muted-foreground text-sm",a),...c}));h.displayName="CardDescription";let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("p-6 pt-0",a),...c}));i.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center p-6 pt-0",a),...c})).displayName="CardFooter",a.s(["Card",0,e,"CardContent",0,i,"CardDescription",0,h,"CardHeader",0,f,"CardTitle",0,g])},90894,a=>{"use strict";var b=a.i(3403);a.s(["AlertCircle",()=>b.default])},6790,a=>{"use strict";var b=a.i(53083),c=a.i(11321);a.i(98617);var d=a.i(50040),e=a.i(90894),f=a.i(50950),g=a.i(63466),h=a.i(90920),i=a.i(58339);a.i(38702);var j=a.i(16223),k=a.i(84117);let l=(0,a.i(97624).default)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);var m=a.i(8685);let n={http:g.Server,sse:l,stdio:m.Terminal};function o({server:a,onSelect:c}){let{t:e}=(0,d.useTranslation)(),f=n[a.transport]??g.Server,h=a.mcp_info?.description??"";return(0,b.jsxs)(k.Card,{className:"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600",role:"button",tabIndex:0,onClick:()=>c(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),c(a))},children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(f,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)("h3",{className:"text-sm font-semibold",children:a.name})]}),(0,b.jsx)(i.Badge,{variant:"outline",className:"shrink-0 text-xs",children:e(`mcpServers.transport.${a.transport}`,a.transport.toUpperCase())})]}),h?(0,b.jsx)("p",{className:"text-muted-foreground mt-2 line-clamp-2 text-xs",children:h}):null,(0,b.jsx)("div",{className:"mt-3 flex items-center gap-2",children:a.auth_type&&"none"!==a.auth_type?(0,b.jsx)(i.Badge,{variant:"secondary",className:"text-xs",children:e(`mcpServers.authType.${a.auth_type}`,a.auth_type)}):null})]})}a.i(78454);var p=a.i(24255),q=a.i(2824),r=a.i(13126);function s({tools:a,serverNames:e}){let{t:f}=(0,d.useTranslation)(),g=(0,c.useMemo)(()=>(function(a,b){let c=new Map;for(let d of a){let a=!1;for(let e of b){let b=`${e}-`;if(d.name.startsWith(b)){let f=d.name.slice(b.length);c.has(e)||c.set(e,[]),c.get(e).push({displayName:f,description:d.description}),a=!0;break}}a||(c.has("other")||c.set("other",[]),c.get("other").push({displayName:d.name,description:d.description}))}return Array.from(c.entries()).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({serverName:a,tools:b.sort((a,b)=>a.displayName.localeCompare(b.displayName))}))})(a,e),[a,e]);return 0===a.length?(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:f("mcpServers.tools.noTools")}):(0,b.jsx)("div",{className:"space-y-4",children:g.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase",children:"other"===a.serverName?f("mcpServers.tools.other"):a.serverName}),(0,b.jsx)("div",{className:"space-y-2",children:a.tools.map(c=>(0,b.jsxs)("div",{className:"rounded-md border p-2",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)(i.Badge,{variant:"outline",className:"font-mono text-xs",children:c.displayName})}),c.description?(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs",children:c.description}):null]},`${a.serverName}-${c.displayName}`))})]},a.serverName))})}var t=a.i(6120);let u=(0,t.createServerReference)("000b119857dc5404d838bc991cc9be5277f2998823",t.callServer,void 0,t.findSourceMapURL,"fetchMcpServerToolsAction");function v({server:a,serverNames:e,open:f,onClose:g}){let{t:h}=(0,d.useTranslation)(),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),t=(0,c.useCallback)(async()=>{m(!0),o(null);try{let a=await u();k(a.tools),a.error&&o(a.error)}catch{o("Failed to load tools")}finally{m(!1)}},[]);if((0,c.useEffect)(()=>{f&&a&&0===j.length&&t()},[f,a,j.length,t]),!a)return null;let w=a.mcp_info?.description??"";return(0,b.jsxs)(p.BaseDrawer,{open:f,onClose:g,children:[(0,b.jsx)(q.DrawerTitle,{children:a.name}),w?(0,b.jsx)(q.DrawerDescription,{children:w}):null,(0,b.jsx)(r.Separator,{className:"my-4"}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.serverName")}),(0,b.jsx)("span",{className:"font-mono text-xs",children:a.server_name})]}),!function(a){if(!a)return!1;try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}}(a.url)?null:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.url")}),(0,b.jsx)("span",{className:"max-w-[200px] truncate font-mono text-xs",children:a.url})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.transport")}),(0,b.jsx)(i.Badge,{variant:"outline",className:"text-xs",children:h(`mcpServers.transport.${a.transport}`,a.transport.toUpperCase())})]}),a.auth_type&&"none"!==a.auth_type?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.authType")}),(0,b.jsx)(i.Badge,{variant:"secondary",className:"text-xs",children:h(`mcpServers.authType.${a.auth_type}`,a.auth_type)})]}):null]}),(0,b.jsx)(r.Separator,{className:"my-4"}),(0,b.jsx)("h3",{className:"mb-3 text-sm font-semibold",children:h("mcpServers.tools.title")}),l?(0,b.jsxs)("p",{className:"text-muted-foreground text-sm",children:[h("accessibility.loading"),"..."]}):n?(0,b.jsx)("p",{className:"text-destructive text-sm",children:n}):(0,b.jsx)(s,{tools:j,serverNames:e})]})}let w=(0,t.createServerReference)("00a6d7d3d6e6e2ef2500401ead3be9498955935c25",t.callServer,void 0,t.findSourceMapURL,"fetchMcpServersAction"),x=["all","http","sse","stdio"];a.s(["McpServersPageClient",0,function({proxyConfigured:a}){let{t:k}=(0,d.useTranslation)(),[l,m]=(0,c.useState)(""),[n,p]=(0,c.useState)("all"),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)([]),[u,y]=(0,c.useState)(!0),[z,A]=(0,c.useState)(null);(0,c.useEffect)(()=>{a?w().then(a=>{t(a.servers),a.error&&A(a.error)}).catch(()=>{A(k("mcpServers.fetchError"))}).finally(()=>{y(!1)}):y(!1)},[a,k]);let B=(0,c.useMemo)(()=>s.map(a=>a.server_name),[s]),C=(0,c.useMemo)(()=>s.filter(a=>{let b=l.toLowerCase(),c=!b||a.name.toLowerCase().includes(b)||(a.mcp_info?.description??"").toLowerCase().includes(b),d="all"===n||a.transport===n;return c&&d}),[s,l,n]);return a?u?(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8",children:(0,b.jsxs)("p",{className:"text-muted-foreground",children:[k("accessibility.loading"),"..."]})}):(0,b.jsxs)("div",{className:"space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:k("mcpServers.title")}),z?(0,b.jsx)("div",{className:"border-destructive/50 bg-destructive/10 mt-2 rounded-md border p-3",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.AlertCircle,{className:"text-destructive h-4 w-4"}),(0,b.jsx)("p",{className:"text-destructive text-sm",children:z})]})}):null,(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:k("mcpServers.subtitle")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.Input,{placeholder:k("mcpServers.searchPlaceholder"),value:l,onChange:a=>m(a.target.value),className:"max-w-xs"}),(0,b.jsx)("div",{className:"flex gap-1",children:x.map(a=>(0,b.jsx)(i.Badge,{variant:n===a?"default":"outline",className:"cursor-pointer",onClick:()=>p(a),children:"all"===a?k("mcpServers.filter.all"):k(`mcpServers.transport.${a}`,a.toUpperCase())},a))})]}),0===C.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,b.jsx)(j.EmptyState,{icon:0===s.length?(0,b.jsx)(g.Server,{className:"h-8 w-8"}):(0,b.jsx)(f.Search,{className:"h-8 w-8"}),title:0===s.length?k("mcpServers.noServers"):k("mcpServers.noResults")})}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:C.map(a=>(0,b.jsx)(o,{server:a,onSelect:r},a.server_id))}),(0,b.jsx)(v,{server:q,serverNames:B,open:!!q,onClose:()=>r(null)})]}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8",children:(0,b.jsx)(j.EmptyState,{icon:(0,b.jsx)(e.AlertCircle,{className:"h-8 w-8"}),title:k("mcpServers.noProxy")})})}],6790)}];
2
-
3
- //# sourceMappingURL=_0ia4o6_._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-card.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-tool-list.tsx","../../../../../../../src/presentation/web/app/actions/data%3A108df5%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aa0e1b3%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/wifi.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\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 Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\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 ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n/*\n * Card — shadcn primitive extended with Stitch's editorial-shadow utility.\n * The `editorial-shadow` class (globals.css) replaces the old `shadow` class\n * with a subtle shadow + ring combination that gives cards a \"lifted\" look\n * and renders consistently against the editorial surface palette in both\n * light and dark modes. The `border` class stays for explicit border visibility\n * in dense grids; editorial-shadow's ring provides the soft lift on top.\n */\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground editorial-shadow rounded-xl border', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","'use client';\n\nimport { useState, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle, Search, Server } from 'lucide-react';\nimport { Input } from '@/components/ui/input';\nimport { Badge } from '@/components/ui/badge';\nimport { EmptyState } from '@/components/common/empty-state';\nimport { McpServerCard } from './mcp-server-card';\nimport { McpServerDetailDrawer } from './mcp-server-detail-drawer';\nimport { fetchMcpServersAction } from '@/app/actions/fetch-mcp-servers';\nimport type { McpServerInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServersPageClientProps {\n proxyConfigured: boolean;\n}\n\nconst TRANSPORT_FILTERS = ['all', 'http', 'sse', 'stdio'] as const;\n\nexport function McpServersPageClient({ proxyConfigured }: McpServersPageClientProps) {\n const { t } = useTranslation();\n const [searchQuery, setSearchQuery] = useState('');\n const [transportFilter, setTransportFilter] = useState<string>('all');\n const [selectedServer, setSelectedServer] = useState<McpServerInfo | null>(null);\n const [servers, setServers] = useState<McpServerInfo[]>([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!proxyConfigured) {\n setLoading(false);\n return;\n }\n fetchMcpServersAction()\n .then((result) => {\n setServers(result.servers);\n if (result.error) setError(result.error);\n })\n .catch(() => {\n setError(t('mcpServers.fetchError'));\n })\n .finally(() => {\n setLoading(false);\n });\n }, [proxyConfigured, t]);\n\n const serverNames = useMemo(() => servers.map((s) => s.server_name), [servers]);\n\n const filtered = useMemo(() => {\n return servers.filter((server) => {\n const query = searchQuery.toLowerCase();\n const matchesQuery =\n !query ||\n server.name.toLowerCase().includes(query) ||\n (server.mcp_info?.description ?? '').toLowerCase().includes(query);\n\n const matchesTransport = transportFilter === 'all' || server.transport === transportFilter;\n\n return matchesQuery && matchesTransport;\n });\n }, [servers, searchQuery, transportFilter]);\n\n if (!proxyConfigured) {\n return (\n <div className=\"flex h-full items-center justify-center p-8\">\n <EmptyState icon={<AlertCircle className=\"h-8 w-8\" />} title={t('mcpServers.noProxy')} />\n </div>\n );\n }\n\n if (loading) {\n return (\n <div className=\"flex h-full items-center justify-center p-8\">\n <p className=\"text-muted-foreground\">{t('accessibility.loading')}...</p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-bold\">{t('mcpServers.title')}</h1>\n {error ? (\n <div className=\"border-destructive/50 bg-destructive/10 mt-2 rounded-md border p-3\">\n <div className=\"flex items-center gap-2\">\n <AlertCircle className=\"text-destructive h-4 w-4\" />\n <p className=\"text-destructive text-sm\">{error}</p>\n </div>\n </div>\n ) : null}\n <p className=\"text-muted-foreground mt-1 text-sm\">{t('mcpServers.subtitle')}</p>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Input\n placeholder={t('mcpServers.searchPlaceholder')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"max-w-xs\"\n />\n <div className=\"flex gap-1\">\n {TRANSPORT_FILTERS.map((filter) => (\n <Badge\n key={filter}\n variant={transportFilter === filter ? 'default' : 'outline'}\n className=\"cursor-pointer\"\n onClick={() => setTransportFilter(filter)}\n >\n {filter === 'all'\n ? t('mcpServers.filter.all')\n : t(`mcpServers.transport.${filter}`, filter.toUpperCase())}\n </Badge>\n ))}\n </div>\n </div>\n\n {filtered.length === 0 ? (\n <div className=\"flex items-center justify-center py-16\">\n <EmptyState\n icon={\n servers.length === 0 ? <Server className=\"h-8 w-8\" /> : <Search className=\"h-8 w-8\" />\n }\n title={servers.length === 0 ? t('mcpServers.noServers') : t('mcpServers.noResults')}\n />\n </div>\n ) : (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((server) => (\n <McpServerCard key={server.server_id} server={server} onSelect={setSelectedServer} />\n ))}\n </div>\n )}\n\n <McpServerDetailDrawer\n server={selectedServer}\n serverNames={serverNames}\n open={!!selectedServer}\n onClose={() => setSelectedServer(null)}\n />\n </div>\n );\n}\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { Card } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Server, Wifi, Terminal } from 'lucide-react';\nimport type { McpServerInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServerCardProps {\n server: McpServerInfo;\n onSelect: (server: McpServerInfo) => void;\n}\n\nconst TRANSPORT_ICONS: Record<string, typeof Server> = {\n http: Server,\n sse: Wifi,\n stdio: Terminal,\n};\n\nexport function McpServerCard({ server, onSelect }: McpServerCardProps) {\n const { t } = useTranslation();\n const TransportIcon = TRANSPORT_ICONS[server.transport] ?? Server;\n const description = server.mcp_info?.description ?? '';\n\n return (\n <Card\n className=\"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(server)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect(server);\n }\n }}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex items-center gap-2\">\n <TransportIcon className=\"text-muted-foreground h-4 w-4 shrink-0\" />\n <h3 className=\"text-sm font-semibold\">{server.name}</h3>\n </div>\n <Badge variant=\"outline\" className=\"shrink-0 text-xs\">\n {t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase())}\n </Badge>\n </div>\n\n {description ? (\n <p className=\"text-muted-foreground mt-2 line-clamp-2 text-xs\">{description}</p>\n ) : null}\n\n <div className=\"mt-3 flex items-center gap-2\">\n {server.auth_type && server.auth_type !== 'none' ? (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {t(`mcpServers.authType.${server.auth_type}`, server.auth_type)}\n </Badge>\n ) : null}\n </div>\n </Card>\n );\n}\n","'use client';\n\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport type { McpToolInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpToolListProps {\n tools: McpToolInfo[];\n serverNames: string[];\n}\n\ninterface GroupedTools {\n serverName: string;\n tools: { displayName: string; description?: string }[];\n}\n\n/**\n * Groups tools by server name prefix.\n *\n * LiteLLM prefixes tool names with `{server_name}-` (e.g., `github_mcp-list_issues`).\n * We match each tool's name against known server names and strip the prefix for display.\n * Tools with no matching prefix go in an \"Other\" group.\n */\nexport function groupToolsByServer(tools: McpToolInfo[], serverNames: string[]): GroupedTools[] {\n const groups = new Map<string, { displayName: string; description?: string }[]>();\n\n for (const tool of tools) {\n let matched = false;\n for (const serverName of serverNames) {\n const prefix = `${serverName}-`;\n if (tool.name.startsWith(prefix)) {\n const displayName = tool.name.slice(prefix.length);\n if (!groups.has(serverName)) groups.set(serverName, []);\n groups.get(serverName)!.push({ displayName, description: tool.description });\n matched = true;\n break;\n }\n }\n if (!matched) {\n if (!groups.has('other')) groups.set('other', []);\n groups.get('other')!.push({ displayName: tool.name, description: tool.description });\n }\n }\n\n return Array.from(groups.entries())\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([serverName, tools]) => ({\n serverName,\n tools: tools.sort((a, b) => a.displayName.localeCompare(b.displayName)),\n }));\n}\n\nexport function McpToolList({ tools, serverNames }: McpToolListProps) {\n const { t } = useTranslation();\n const grouped = useMemo(() => groupToolsByServer(tools, serverNames), [tools, serverNames]);\n\n if (tools.length === 0) {\n return <p className=\"text-muted-foreground text-sm\">{t('mcpServers.tools.noTools')}</p>;\n }\n\n return (\n <div className=\"space-y-4\">\n {grouped.map((group) => (\n <div key={group.serverName}>\n <h4 className=\"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase\">\n {group.serverName === 'other' ? t('mcpServers.tools.other') : group.serverName}\n </h4>\n <div className=\"space-y-2\">\n {group.tools.map((tool) => (\n <div\n key={`${group.serverName}-${tool.displayName}`}\n className=\"rounded-md border p-2\"\n >\n <div className=\"flex items-center gap-2\">\n <Badge variant=\"outline\" className=\"font-mono text-xs\">\n {tool.displayName}\n </Badge>\n </div>\n {tool.description ? (\n <p className=\"text-muted-foreground mt-1 text-xs\">{tool.description}</p>\n ) : null}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"000b119857dc5404d838bc991cc9be5277f2998823\":{\"name\":\"fetchMcpServerToolsAction\"}},\"src/presentation/web/app/actions/fetch-mcp-server-tools.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"000b119857dc5404d838bc991cc9be5277f2998823\",callServer,void 0,findSourceMapURL,\"fetchMcpServerToolsAction\");export{$$RSC_SERVER_ACTION_0 as fetchMcpServerToolsAction};","'use client';\n\nimport { useEffect, useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Separator } from '@/components/ui/separator';\nimport { Badge } from '@/components/ui/badge';\nimport { McpToolList } from './mcp-tool-list';\nimport { fetchMcpServerToolsAction } from '@/app/actions/fetch-mcp-server-tools';\nimport type {\n McpServerInfo,\n McpToolInfo,\n} from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServerDetailDrawerProps {\n server: McpServerInfo | null;\n serverNames: string[];\n open: boolean;\n onClose: () => void;\n}\n\nfunction isValidDisplayUrl(url?: string): boolean {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nexport function McpServerDetailDrawer({\n server,\n serverNames,\n open,\n onClose,\n}: McpServerDetailDrawerProps) {\n const { t } = useTranslation();\n const [tools, setTools] = useState<McpToolInfo[]>([]);\n const [loadingTools, setLoadingTools] = useState(false);\n const [toolError, setToolError] = useState<string | null>(null);\n\n const loadTools = useCallback(async () => {\n setLoadingTools(true);\n setToolError(null);\n try {\n const result = await fetchMcpServerToolsAction();\n setTools(result.tools);\n if (result.error) setToolError(result.error);\n } catch {\n setToolError('Failed to load tools');\n } finally {\n setLoadingTools(false);\n }\n }, []);\n\n useEffect(() => {\n if (open && server && tools.length === 0) {\n loadTools();\n }\n }, [open, server, tools.length, loadTools]);\n\n if (!server) return null;\n\n const description = server.mcp_info?.description ?? '';\n\n return (\n <BaseDrawer open={open} onClose={onClose}>\n <DrawerTitle>{server.name}</DrawerTitle>\n {description ? <DrawerDescription>{description}</DrawerDescription> : null}\n\n <Separator className=\"my-4\" />\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.serverName')}</span>\n <span className=\"font-mono text-xs\">{server.server_name}</span>\n </div>\n\n {isValidDisplayUrl(server.url) ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.url')}</span>\n <span className=\"max-w-[200px] truncate font-mono text-xs\">{server.url}</span>\n </div>\n ) : null}\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.transport')}</span>\n <Badge variant=\"outline\" className=\"text-xs\">\n {t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase())}\n </Badge>\n </div>\n\n {server.auth_type && server.auth_type !== 'none' ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.authType')}</span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {t(`mcpServers.authType.${server.auth_type}`, server.auth_type)}\n </Badge>\n </div>\n ) : null}\n </div>\n\n <Separator className=\"my-4\" />\n\n <h3 className=\"mb-3 text-sm font-semibold\">{t('mcpServers.tools.title')}</h3>\n {loadingTools ? (\n <p className=\"text-muted-foreground text-sm\">{t('accessibility.loading')}...</p>\n ) : toolError ? (\n <p className=\"text-destructive text-sm\">{toolError}</p>\n ) : (\n <McpToolList tools={tools} serverNames={serverNames} />\n )}\n </BaseDrawer>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"00a6d7d3d6e6e2ef2500401ead3be9498955935c25\":{\"name\":\"fetchMcpServersAction\"}},\"src/presentation/web/app/actions/fetch-mcp-servers.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00a6d7d3d6e6e2ef2500401ead3be9498955935c25\",callServer,void 0,findSourceMapURL,\"fetchMcpServersAction\");export{$$RSC_SERVER_ACTION_0 as fetchMcpServersAction};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 20h.01', key: 'zekei9' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0', key: 'dnpr2z' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0', key: '1x1e6c' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0', key: '1bycff' }],\n];\n\n/**\n * @component @name Wifi\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjBoLjAxIiAvPgogIDxwYXRoIGQ9Ik0yIDguODJhMTUgMTUgMCAwIDEgMjAgMCIgLz4KICA8cGF0aCBkPSJNNSAxMi44NTlhMTAgMTAgMCAwIDEgMTQgMCIgLz4KICA8cGF0aCBkPSJNOC41IDE2LjQyOWE1IDUgMCAwIDEgNyAwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/wifi\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 Wifi = createLucideIcon('wifi', __iconNode);\n\nexport default Wifi;\n"],"names":["EmptyState","icon","title","description","action","className","props","Card","ref","displayName","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","d"],"mappings":"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","ignoreList":[0,1,11]}
@@ -1,3 +0,0 @@
1
- module.exports=[58339,a=>{"use strict";var b=a.i(53083),c=a.i(42261),d=a.i(85536);let e=(0,c.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},60197,22018,a=>{"use strict";let b=(0,a.i(97624).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",0,b],22018),a.s(["Check",0,b],60197)},53823,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(59653),e=a.i(80303),f=a.i(95819),g=a.i(49350),h=a.i(98340),i=a.i(39990),j=a.i(55277),k=a.i(29724),l=a.i(50608),m=a.i(73490),n=a.i(30419),o=a.i(92274),p=a.i(47427),q=a.i(16164),r=a.i(55571),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",0,A,"Arrow",0,P,"Close",0,O,"Content",0,I,"Popover",0,y,"PopoverAnchor",0,A,"PopoverArrow",0,P,"PopoverClose",0,O,"PopoverContent",0,I,"PopoverPortal",0,G,"PopoverTrigger",0,C,"Portal",0,G,"Root",0,y,"Trigger",0,C,"createPopoverScope",0,u],97514);var R=a.i(97514),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",0,T,"PopoverContent",0,V,"PopoverTrigger",0,U],53823)},65798,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",0,b],65798)},61781,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(60197),e=a.i(40227),f=a.i(38776);a.i(98617);var g=a.i(50040),h=a.i(63789),i=a.i(37891),j=a.i(17606),k=a.i(83852),l=a.i(58339),m=a.i(18948),n=a.i(53823),o=a.i(85536);a.s(["AgentModelPicker",0,function({initialAgentType:a,initialModel:p,onAgentModelChange:q,disabled:r,className:s,mode:t}){let{t:u}=(0,g.useTranslation)("web"),[v,w]=c.useState(!1),[x,y]=c.useState([]),[z,A]=c.useState(!0),[B,C]=c.useState(a),[D,E]=c.useState(p),[F,G]=c.useState(null),[H,I]=c.useState(0),[J,K]=c.useState(null);c.useEffect(()=>{(0,h.getAllAgentModels)().then(y).finally(()=>A(!1))},[]),c.useEffect(()=>{if(!v){let a=setTimeout(()=>{I(0),K(null)},150);return()=>clearTimeout(a)}},[v]);let L=async(a,b)=>{if(w(!1),a!==B||b!==D){if("override"===t){C(a),E(b),q?.(a,b);return}C(a),E(b),q?.(a,b),G(null);try{let c=await (0,i.updateAgentAndModel)(a,b||null);c.ok||(C(B),E(D),q?.(B,D),G(c.error??"Failed to save"))}catch{C(B),E(D),q?.(B,D),G("Failed to save")}}},M=(0,j.getAgentTypeIcon)(B),N=x.find(a=>a.agentType===B)?.label??B,O=D?(0,k.getModelMeta)(D).displayName||D:null,P=J?x.find(a=>a.agentType===J):null;return(0,b.jsxs)("div",{className:(0,o.cn)("flex flex-col gap-1",s),children:[(0,b.jsxs)(n.Popover,{open:v,onOpenChange:w,children:[(0,b.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(m.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":v,"aria-invalid":!!F,"aria-describedby":F?"agent-model-picker-error":void 0,disabled:(r??!1)||z,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(M,{className:"h-4 w-4 shrink-0"}),z?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:N}),O?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:O})]}):null]})]})})}),(0,b.jsx)(n.PopoverContent,{className:"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===H?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),x.map(a=>{let c=(0,j.getAgentTypeIcon)(a.agentType),e=B===a.agentType,g=a.models.length>0;return(0,b.jsxs)("button",{type:"button",disabled:!a.installed,className:(0,o.cn)("flex w-full items-center gap-2.5 px-3 py-2 text-xs transition-colors",a.installed?"hover:bg-accent hover:text-accent-foreground cursor-pointer":"cursor-not-allowed opacity-60",e&&"bg-accent/50"),onClick:()=>{a.installed&&(g?(K(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>I(1))})):L(a.agentType,""))},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-start",children:a.label}),(0,b.jsx)(l.Badge,{variant:"outline",className:(0,o.cn)("px-1.5 py-0 text-[10px] leading-4 font-normal",a.installed?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:a.installed?u("settings.environment.installed"):u("settings.environment.notInstalled")}),e&&!g?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,g&&a.installed?(0,b.jsx)(f.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:P?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{I(0),setTimeout(()=>K(null),220)},children:[(0,b.jsx)(e.ChevronLeft,{className:"h-3.5 w-3.5"}),P.label]}),P.models.map(a=>{let c=B===P.agentType&&D===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,o.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>L(P.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!F&&(0,b.jsx)("p",{id:"agent-model-picker-error",className:"text-destructive text-sm",role:"alert",children:F})]})}])},79620,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("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","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}])},14068,a=>{"use strict";let b=(0,a.i(97624).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",0,b])}];
2
-
3
- //# sourceMappingURL=_0o.xc6x._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/ui/badge.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/check.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-popover%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Brea_8b5332f8e883134e9d9ab2856fc4395d/node_modules/%40radix-ui/react-popover/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/popover.tsx","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-up.ts","../../../../../../../src/presentation/web/components/features/settings/AgentModelPicker/index.tsx","../../../../../../../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/code.ts"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\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 Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]];\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\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 ChevronUp = createLucideIcon('chevron-up', __iconNode);\n\nexport default ChevronUp;\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronLeft, ChevronRight } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { getAllAgentModels } from '@/app/actions/get-all-agent-models';\nimport type { AgentModelGroup } from '@/app/actions/get-all-agent-models';\nimport { updateAgentAndModel } from '@/app/actions/update-agent-and-model';\nimport { getAgentTypeIcon } from '@/components/common/feature-node/agent-type-icons';\nimport { getModelMeta } from '@/lib/model-metadata';\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\n\nexport interface AgentModelPickerProps {\n initialAgentType: string;\n initialModel: string;\n onAgentModelChange?: (agentType: string, model: string) => void;\n disabled?: boolean;\n className?: string;\n /** 'settings' persists to DB; 'override' only calls onAgentModelChange */\n mode: 'settings' | 'override';\n}\n\nexport function AgentModelPicker({\n initialAgentType,\n initialModel,\n onAgentModelChange,\n disabled,\n className,\n mode,\n}: AgentModelPickerProps) {\n const { t } = useTranslation('web');\n const [open, setOpen] = React.useState(false);\n const [groups, setGroups] = React.useState<AgentModelGroup[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [agentType, setAgentType] = React.useState(initialAgentType);\n const [model, setModel] = React.useState(initialModel);\n const [error, setError] = React.useState<string | null>(null);\n\n // 0 = agent list visible, 1 = model list visible\n const [level, setLevel] = React.useState(0);\n // Which agent's models to show (kept separate from level for animation)\n const [drillAgent, setDrillAgent] = React.useState<string | null>(null);\n\n React.useEffect(() => {\n getAllAgentModels()\n .then(setGroups)\n .finally(() => setLoading(false));\n }, []);\n\n // Reset drill-down when popover closes\n React.useEffect(() => {\n if (!open) {\n const t = setTimeout(() => {\n setLevel(0);\n setDrillAgent(null);\n }, 150);\n return () => clearTimeout(t);\n }\n }, [open]);\n\n const drillInto = (agent: string) => {\n setDrillAgent(agent);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => setLevel(1));\n });\n };\n\n const drillBack = () => {\n setLevel(0);\n setTimeout(() => setDrillAgent(null), 220);\n };\n\n const handleSelect = async (newAgentType: string, newModel: string) => {\n setOpen(false);\n\n if (newAgentType === agentType && newModel === model) return;\n\n if (mode === 'override') {\n setAgentType(newAgentType);\n setModel(newModel);\n onAgentModelChange?.(newAgentType, newModel);\n return;\n }\n\n // mode === 'settings' — optimistically update, then persist\n const prevAgent = agentType;\n const prevModel = model;\n setAgentType(newAgentType);\n setModel(newModel);\n onAgentModelChange?.(newAgentType, newModel);\n\n setError(null);\n try {\n const result = await updateAgentAndModel(newAgentType, newModel || null);\n if (!result.ok) {\n // Revert on failure\n setAgentType(prevAgent);\n setModel(prevModel);\n onAgentModelChange?.(prevAgent, prevModel);\n setError(result.error ?? 'Failed to save');\n }\n } catch {\n setAgentType(prevAgent);\n setModel(prevModel);\n onAgentModelChange?.(prevAgent, prevModel);\n setError('Failed to save');\n }\n };\n\n const isDisabled = (disabled ?? false) || loading;\n\n const AgentIcon = getAgentTypeIcon(agentType);\n const agentLabel = groups.find((g) => g.agentType === agentType)?.label ?? agentType;\n const modelName = model ? getModelMeta(model).displayName || model : null;\n\n const activeGroup = drillAgent ? groups.find((g) => g.agentType === drillAgent) : null;\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n aria-invalid={!!error}\n aria-describedby={error ? 'agent-model-picker-error' : undefined}\n disabled={isDisabled}\n className=\"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30\"\n >\n <span className=\"flex items-center gap-2 truncate\">\n <AgentIcon className=\"h-4 w-4 shrink-0\" />\n {loading ? (\n 'Loading…'\n ) : (\n <span className=\"flex items-center gap-1\">\n <span className=\"text-muted-foreground text-xs\">{agentLabel}</span>\n {modelName ? (\n <>\n <span className=\"text-muted-foreground/50 text-xs\">·</span>\n <span className=\"text-xs font-medium\">{modelName}</span>\n </>\n ) : null}\n </span>\n )}\n </span>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0\"\n align=\"start\"\n >\n {/* Sliding container — both panels side by side, translateX controlled by level */}\n <div\n className=\"flex transition-transform duration-200 ease-in-out\"\n style={{ transform: `translateX(${level === 1 ? '-50%' : '0%'})`, width: '200%' }}\n >\n {/* ── Level 1: Agent list ── */}\n <div className=\"w-1/2 shrink-0\">\n <div className=\"text-muted-foreground border-b px-3 py-2 text-xs font-medium\">\n Select agent\n </div>\n {groups.map((group) => {\n const GroupIcon = getAgentTypeIcon(group.agentType);\n const isActive = agentType === group.agentType;\n const hasModels = group.models.length > 0;\n\n return (\n <button\n key={group.agentType}\n type=\"button\"\n disabled={!group.installed}\n className={cn(\n 'flex w-full items-center gap-2.5 px-3 py-2 text-xs transition-colors',\n group.installed\n ? 'hover:bg-accent hover:text-accent-foreground cursor-pointer'\n : 'cursor-not-allowed opacity-60',\n isActive && 'bg-accent/50'\n )}\n onClick={() => {\n if (!group.installed) return;\n if (hasModels) {\n drillInto(group.agentType);\n } else {\n handleSelect(group.agentType, '');\n }\n }}\n >\n <GroupIcon className=\"h-4 w-4 shrink-0\" />\n <span className=\"flex-1 text-start\">{group.label}</span>\n <Badge\n variant=\"outline\"\n className={cn(\n 'px-1.5 py-0 text-[10px] leading-4 font-normal',\n group.installed\n ? 'border-emerald-500/30 text-emerald-500'\n : 'border-muted-foreground/30 text-muted-foreground'\n )}\n >\n {group.installed\n ? t('settings.environment.installed')\n : t('settings.environment.notInstalled')}\n </Badge>\n {isActive && !hasModels ? (\n <Check className=\"text-primary h-3.5 w-3.5 shrink-0\" />\n ) : null}\n {hasModels && group.installed ? (\n <ChevronRight className=\"text-muted-foreground h-3.5 w-3.5 shrink-0\" />\n ) : null}\n </button>\n );\n })}\n </div>\n\n {/* ── Level 2: Model list for selected agent ── */}\n <div className=\"w-1/2 shrink-0\">\n {activeGroup ? (\n <>\n {/* Back header */}\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors\"\n onClick={drillBack}\n >\n <ChevronLeft className=\"h-3.5 w-3.5\" />\n {activeGroup.label}\n </button>\n\n {/* Model items */}\n {activeGroup.models.map((m) => {\n const isSelected = agentType === activeGroup.agentType && model === m.id;\n return (\n <button\n key={m.id}\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors',\n 'hover:bg-accent hover:text-accent-foreground',\n isSelected && 'bg-accent/50'\n )}\n onClick={() => handleSelect(activeGroup.agentType, m.id)}\n >\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"text-xs font-medium\">{m.displayName}</span>\n <span className=\"text-muted-foreground text-xs\">{m.description}</span>\n </div>\n {isSelected ? (\n <Check className=\"text-primary h-3.5 w-3.5 shrink-0\" />\n ) : null}\n </button>\n );\n })}\n </>\n ) : null}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n {Boolean(error) && (\n <p id=\"agent-model-picker-error\" className=\"text-destructive text-sm\" role=\"alert\">\n {error}\n </p>\n )}\n </div>\n );\n}\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 ['path', { d: 'm16 18 6-6-6-6', key: 'eg8j8' }],\n ['path', { d: 'm8 6-6 6 6 6', key: 'ppft3o' }],\n];\n\n/**\n * @component @name Code\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJtOCA2LTYgNiA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/code\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 Code = createLucideIcon('code', __iconNode);\n\nexport default Code;\n"],"names":["badgeVariants","variants","variant","default","secondary","destructive","outline","defaultVariants","Badge","className","props","POPOVER_NAME","createPopoverContext","createPopoverScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","hasCustomAnchor","setHasCustomAnchor","setOpen","prop","defaultProp","onChange","caller","scope","contentId","onOpenToggle","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","displayName","ANCHOR_NAME","PopoverAnchor","forwardedRef","anchorProps","context","ref","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","trigger","button","type","getState","onClick","asChild","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","PopoverPortal","container","present","CONTENT_NAME","PopoverContent","portalContext","contentProps","PopoverContentModal","PopoverContentNonModal","Slot","contentRef","composedRefs","isRightClickOutsideRef","content","current","as","allowPinchZoom","PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","hasInteractedOutsideRef","hasPointerDownOutsideRef","defaultPrevented","onInteractOutside","target","targetIsTrigger","contains","onOpenAutoFocus","onEscapeKeyDown","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","onDismiss","role","id","style","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","Root2","Anchor2","Trigger","Portal","Content2","Close","Arrow2","AgentModelPicker","initialAgentType","initialModel","onAgentModelChange","disabled","mode","t","groups","setGroups","loading","setLoading","agentType","setAgentType","model","setModel","error","setError","level","setLevel","drillAgent","setDrillAgent","then","finally","setTimeout","clearTimeout","drillInto","agent","requestAnimationFrame","drillBack","handleSelect","newAgentType","newModel","prevAgent","prevModel","result","ok","isDisabled","AgentIcon","agentLabel","find","g","label","modelName","activeGroup","undefined","align","transform","width","map","group","GroupIcon","isActive","hasModels","models","length","installed","m","isSelected","description","Boolean","Textarea"],"mappings":"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","ignoreList":[1,2,4]}