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

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 (245) hide show
  1. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +1 -9
  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 +3 -7
  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 +5 -6
  6. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +0 -12
  7. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +1 -11
  9. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +2 -10
  10. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +13 -50
  12. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +1 -1
  13. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +1 -1
  14. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +2 -2
  15. package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +1 -1
  16. package/dist/src/presentation/web/app/mcp-servers/page.js +1 -3
  17. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +2 -2
  18. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +8 -14
  20. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +1 -1
  21. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +1 -1
  22. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +1 -2
  23. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +3 -2
  25. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +2 -2
  26. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +13 -17
  27. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -1
  28. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +34 -21
  29. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +1 -1
  30. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -1
  31. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +8 -7
  32. package/dist/translations/ar/web.json +1 -6
  33. package/dist/translations/de/web.json +1 -6
  34. package/dist/translations/en/web.json +1 -6
  35. package/dist/translations/es/web.json +1 -6
  36. package/dist/translations/fr/web.json +1 -6
  37. package/dist/translations/he/web.json +1 -6
  38. package/dist/translations/pt/web.json +1 -6
  39. package/dist/translations/ru/web.json +1 -6
  40. package/dist/tsconfig.build.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/web/.next/BUILD_ID +1 -1
  43. package/web/.next/build-manifest.json +3 -3
  44. package/web/.next/fallback-build-manifest.json +3 -3
  45. package/web/.next/prerender-manifest.json +3 -3
  46. package/web/.next/required-server-files.js +3 -3
  47. package/web/.next/required-server-files.json +3 -3
  48. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  49. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  52. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  55. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  58. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  61. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  64. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  67. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  70. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  73. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  76. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  79. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  82. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  85. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  86. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  88. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/_global-error.html +1 -1
  91. package/web/.next/server/app/_global-error.rsc +1 -1
  92. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  93. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  94. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  98. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  99. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  101. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  102. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  103. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  104. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  105. package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +13 -13
  106. package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -1
  107. package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
  109. package/web/.next/server/app/plugins/page.js.nft.json +1 -1
  110. package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
  112. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  113. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  115. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  116. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  118. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  119. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  121. package/web/.next/server/app/version/page.js.nft.json +1 -1
  122. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  123. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  124. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  125. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  127. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  129. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  131. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +3 -0
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -0
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  153. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  155. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/_096x3u~._.js +1 -1
  157. package/web/.next/server/chunks/ssr/_096x3u~._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  159. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  161. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  163. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  165. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/_0ia4o6_._.js +3 -0
  167. package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -0
  168. package/web/.next/server/chunks/ssr/_0o.xc6x._.js +3 -0
  169. package/web/.next/server/chunks/ssr/_0o.xc6x._.js.map +1 -0
  170. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  171. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  175. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  176. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  177. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  179. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/{_0b~rt5k._.js → _0xn_dfh._.js} +2 -2
  181. package/web/.next/server/chunks/ssr/{_0b~rt5k._.js.map → _0xn_dfh._.js.map} +1 -1
  182. package/web/.next/server/chunks/ssr/{_0g36k1q._.js → _0z6p8yi._.js} +2 -2
  183. package/web/.next/server/chunks/ssr/{_0g36k1q._.js.map → _0z6p8yi._.js.map} +1 -1
  184. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  185. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  187. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  189. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/{_0ha3y7r._.js → _12i_bjl._.js} +2 -2
  191. package/web/.next/server/chunks/ssr/{_0ha3y7r._.js.map → _12i_bjl._.js.map} +1 -1
  192. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +1 -1
  193. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -1
  194. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  203. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  204. package/web/.next/server/middleware-build-manifest.js +3 -3
  205. package/web/.next/server/pages/500.html +1 -1
  206. package/web/.next/server/server-reference-manifest.js +1 -1
  207. package/web/.next/server/server-reference-manifest.json +57 -57
  208. package/web/.next/static/chunks/00h433i5-1v_-.css +1 -0
  209. package/web/.next/static/chunks/{0~z22-y-2-50b.js → 0242vp5_56bjp.js} +1 -1
  210. package/web/.next/static/chunks/{08-x1y93o~z1u.js → 07c0dde.-8.3e.js} +1 -1
  211. package/web/.next/static/chunks/{04mde8apvce...js → 084nyl7us-xbo.js} +1 -1
  212. package/web/.next/static/chunks/{0isdv5nl9ixzx.js → 0cgfywkcky60_.js} +1 -1
  213. package/web/.next/static/chunks/0jl9-2_wjbofj.js +1 -0
  214. package/web/.next/static/chunks/{0-479g9ihl1ga.js → 0j~279np0vu13.js} +1 -1
  215. package/web/.next/static/chunks/{02ow0rjxjqsob.js → 0k3fxd~lsx6h_.js} +1 -1
  216. package/web/.next/static/chunks/{0nw5kg.d92o~s.js → 0kv2-9owuv51~.js} +2 -2
  217. package/web/.next/static/chunks/0r9cddoy0xkhk.js +1 -0
  218. package/web/.next/static/chunks/{0gz0lgz7pvrb5.js → 0sgbbtfp4hspl.js} +1 -1
  219. package/web/.next/static/chunks/{17t4j5hdn_bcj.js → 0vscxcwhltksg.js} +2 -2
  220. package/web/.next/static/chunks/{06fk~iz2u90ux.js → 0xjj0-wsaziot.js} +1 -1
  221. package/web/.next/static/chunks/{0irjgz-p.9i6s.js → 11rfk7fre_6t2.js} +1 -1
  222. package/web/.next/static/chunks/123j391jw_zg4.js +1 -0
  223. package/web/.next/static/chunks/{163wx0qvsyhgb.js → 15zjq.s38l64~.js} +1 -1
  224. package/web/.next/static/chunks/{0nkxltjer~us7.js → 16nbcfv~__pas.js} +1 -1
  225. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts +0 -19
  226. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts.map +0 -1
  227. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.js +0 -108
  228. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts +0 -11
  229. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts.map +0 -1
  230. package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.js +0 -18
  231. package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js +0 -10
  232. package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js.map +0 -1
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js +0 -3
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js.map +0 -1
  235. package/web/.next/server/chunks/ssr/_0av5r-b._.js +0 -3
  236. package/web/.next/server/chunks/ssr/_0av5r-b._.js.map +0 -1
  237. package/web/.next/server/chunks/ssr/_0fswe4r._.js +0 -3
  238. package/web/.next/server/chunks/ssr/_0fswe4r._.js.map +0 -1
  239. package/web/.next/static/chunks/05uewqqwl93w2.js +0 -8
  240. package/web/.next/static/chunks/0h2nh2s2b3ma2.css +0 -1
  241. package/web/.next/static/chunks/16mt3g3q98v_k.js +0 -1
  242. package/web/.next/static/chunks/173rm.h7j3_7c.js +0 -1
  243. /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_buildManifest.js +0 -0
  244. /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_clientMiddlewareManifest.js +0 -0
  245. /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_ssgManifest.js +0 -0
@@ -1,108 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from 'react';
4
- import { useTranslation } from 'react-i18next';
5
- import { Button } from '../../ui/button.js';
6
- import { Check, Copy } from 'lucide-react';
7
- const CLIENTS = [
8
- { id: 'claude-code', label: 'Claude Code' },
9
- { id: 'cursor', label: 'Cursor' },
10
- { id: 'vscode', label: 'VS Code' },
11
- { id: 'gemini', label: 'Gemini CLI' },
12
- { id: 'codex', label: 'Codex CLI' },
13
- { id: 'curl', label: 'cURL' },
14
- ];
15
- /**
16
- * Generate copy-pasteable connection snippets for various MCP clients.
17
- *
18
- * The LiteLLM proxy exposes each MCP server at {proxyBaseUrl}/{serverName}/mcp
19
- * and authenticates via the `x-litellm-api-key: Bearer <key>` header.
20
- *
21
- * All snippets use `<LITELLM_API_KEY>` as a placeholder that the user must
22
- * replace with their actual virtual key — we never inline a real key into
23
- * copyable instructions.
24
- */
25
- export function buildSnippet(clientId, proxyBaseUrl, serverName) {
26
- const endpoint = `${proxyBaseUrl.replace(/\/$/, '')}/${serverName}/mcp`;
27
- switch (clientId) {
28
- case 'claude-code':
29
- // Claude Code supports `claude mcp add` command
30
- return [
31
- `claude mcp add --transport http ${serverName} \\`,
32
- ` ${endpoint} \\`,
33
- ` --header "x-litellm-api-key: Bearer <LITELLM_API_KEY>"`,
34
- ].join('\n');
35
- case 'cursor':
36
- // Cursor: ~/.cursor/mcp.json
37
- return JSON.stringify({
38
- mcpServers: {
39
- [serverName]: {
40
- url: endpoint,
41
- headers: {
42
- 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',
43
- },
44
- },
45
- },
46
- }, null, 2);
47
- case 'vscode':
48
- // VS Code / Copilot: settings.json under "mcp"
49
- return JSON.stringify({
50
- mcp: {
51
- servers: {
52
- [serverName]: {
53
- type: 'http',
54
- url: endpoint,
55
- headers: {
56
- 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',
57
- },
58
- },
59
- },
60
- },
61
- }, null, 2);
62
- case 'gemini':
63
- // Gemini CLI: ~/.gemini/settings.json or project .gemini/settings.json
64
- return JSON.stringify({
65
- mcpServers: {
66
- [serverName]: {
67
- httpUrl: endpoint,
68
- headers: {
69
- 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',
70
- },
71
- },
72
- },
73
- }, null, 2);
74
- case 'codex':
75
- // Codex CLI: ~/.codex/config.toml
76
- return [
77
- `[mcp_servers.${serverName}]`,
78
- `url = "${endpoint}"`,
79
- `headers = { "x-litellm-api-key" = "Bearer <LITELLM_API_KEY>" }`,
80
- ].join('\n');
81
- case 'curl':
82
- return [
83
- `curl --location '${endpoint}' \\`,
84
- ` --header 'Content-Type: application/json' \\`,
85
- ` --header 'x-litellm-api-key: Bearer <LITELLM_API_KEY>' \\`,
86
- ` --data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'`,
87
- ].join('\n');
88
- }
89
- }
90
- export function McpConnectInstructions({ proxyBaseUrl, serverName }) {
91
- const { t } = useTranslation('web');
92
- const [activeClient, setActiveClient] = useState('claude-code');
93
- const [copied, setCopied] = useState(false);
94
- const snippet = buildSnippet(activeClient, proxyBaseUrl, serverName);
95
- const handleCopy = async () => {
96
- try {
97
- await navigator.clipboard.writeText(snippet);
98
- setCopied(true);
99
- setTimeout(() => setCopied(false), 2000);
100
- }
101
- catch {
102
- // Clipboard not available (e.g., insecure context) — silently ignore.
103
- }
104
- };
105
- return (_jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "flex flex-wrap gap-1", role: "tablist", children: CLIENTS.map((client) => (_jsx("button", { type: "button", role: "tab", "aria-selected": activeClient === client.id, onClick: () => setActiveClient(client.id), className: activeClient === client.id
106
- ? 'bg-primary text-primary-foreground rounded-md px-2.5 py-1 text-xs font-medium'
107
- : 'border-border hover:bg-muted rounded-md border px-2.5 py-1 text-xs', children: client.label }, client.id))) }), _jsxs("div", { className: "relative", children: [_jsx("pre", { className: "bg-muted max-h-64 overflow-auto rounded-md p-3 pr-10 font-mono text-[11px] leading-relaxed", children: _jsx("code", { children: snippet }) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "absolute top-1 right-1 h-7 w-7", onClick: handleCopy, "aria-label": t('mcpServers.connect.copy'), children: copied ? (_jsx(Check, { className: "text-primary h-3.5 w-3.5" })) : (_jsx(Copy, { className: "h-3.5 w-3.5" })) })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: t('mcpServers.connect.replaceKey') })] }));
108
- }
@@ -1,11 +0,0 @@
1
- import type { StoryObj } from '@storybook/react-vite';
2
- import { McpConnectInstructions } from './mcp-connect-instructions.js';
3
- declare const meta: {
4
- title: string;
5
- component: typeof McpConnectInstructions;
6
- };
7
- export default meta;
8
- type Story = StoryObj<typeof meta>;
9
- export declare const Default: Story;
10
- export declare const HttpsProxy: Story;
11
- //# sourceMappingURL=mcp-connect-instructions.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-connect-instructions.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,QAAA,MAAM,IAAI;;;CAGqC,CAAC;AAEhD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAKxB,CAAC"}
@@ -1,18 +0,0 @@
1
- import { McpConnectInstructions } from './mcp-connect-instructions.js';
2
- const meta = {
3
- title: 'Features/McpServers/McpConnectInstructions',
4
- component: McpConnectInstructions,
5
- };
6
- export default meta;
7
- export const Default = {
8
- args: {
9
- proxyBaseUrl: 'http://localhost:4000',
10
- serverName: 'deepwiki_mcp',
11
- },
12
- };
13
- export const HttpsProxy = {
14
- args: {
15
- proxyBaseUrl: 'https://litellm.example.com',
16
- serverName: 'github_mcp',
17
- },
18
- };
@@ -1,10 +0,0 @@
1
- module.exports=[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)("web"),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,serverName:e}){let{t:f}=(0,d.useTranslation)("web"),g=(0,c.useMemo)(()=>{let b;return b=`${e}-`,a.map(a=>({displayName:a.name.startsWith(b)?a.name.slice(b.length):a.name,description:a.description,key:a.name})).sort((a,b)=>a.displayName.localeCompare(b.displayName))},[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-2",children:g.map(a=>(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:a.displayName})}),a.description?(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs",children:a.description}):null]},a.key))})}var t=a.i(18948),u=a.i(60197),v=a.i(34948);let w=[{id:"claude-code",label:"Claude Code"},{id:"cursor",label:"Cursor"},{id:"vscode",label:"VS Code"},{id:"gemini",label:"Gemini CLI"},{id:"codex",label:"Codex CLI"},{id:"curl",label:"cURL"}];function x({proxyBaseUrl:a,serverName:e}){let{t:f}=(0,d.useTranslation)("web"),[g,h]=(0,c.useState)("claude-code"),[i,j]=(0,c.useState)(!1),k=function(a,b,c){let d=`${b.replace(/\/$/,"")}/${c}/mcp`;switch(a){case"claude-code":return`claude mcp add --transport http ${c} \\
2
- ${d} \\
3
- --header "x-litellm-api-key: Bearer <LITELLM_API_KEY>"`;case"cursor":return JSON.stringify({mcpServers:{[c]:{url:d,headers:{"x-litellm-api-key":"Bearer <LITELLM_API_KEY>"}}}},null,2);case"vscode":return JSON.stringify({mcp:{servers:{[c]:{type:"http",url:d,headers:{"x-litellm-api-key":"Bearer <LITELLM_API_KEY>"}}}}},null,2);case"gemini":return JSON.stringify({mcpServers:{[c]:{httpUrl:d,headers:{"x-litellm-api-key":"Bearer <LITELLM_API_KEY>"}}}},null,2);case"codex":return`[mcp_servers.${c}]
4
- url = "${d}"
5
- headers = { "x-litellm-api-key" = "Bearer <LITELLM_API_KEY>" }`;case"curl":return`curl --location '${d}' \\
6
- --header 'Content-Type: application/json' \\
7
- --header 'x-litellm-api-key: Bearer <LITELLM_API_KEY>' \\
8
- --data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'`}}(g,a,e),l=async()=>{try{await navigator.clipboard.writeText(k),j(!0),setTimeout(()=>j(!1),2e3)}catch{}};return(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-1",role:"tablist",children:w.map(a=>(0,b.jsx)("button",{type:"button",role:"tab","aria-selected":g===a.id,onClick:()=>h(a.id),className:g===a.id?"bg-primary text-primary-foreground rounded-md px-2.5 py-1 text-xs font-medium":"border-border hover:bg-muted rounded-md border px-2.5 py-1 text-xs",children:a.label},a.id))}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("pre",{className:"bg-muted max-h-64 overflow-auto rounded-md p-3 pr-10 font-mono text-[11px] leading-relaxed",children:(0,b.jsx)("code",{children:k})}),(0,b.jsx)(t.Button,{type:"button",variant:"ghost",size:"icon",className:"absolute top-1 right-1 h-7 w-7",onClick:l,"aria-label":f("mcpServers.connect.copy"),children:i?(0,b.jsx)(u.Check,{className:"text-primary h-3.5 w-3.5"}):(0,b.jsx)(v.Copy,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)("p",{className:"text-muted-foreground text-xs",children:f("mcpServers.connect.replaceKey")})]})}var y=a.i(6120);let z=(0,y.createServerReference)("401ba49ea4f9ca43f01491e2327308b75f41aab452",y.callServer,void 0,y.findSourceMapURL,"fetchMcpServerToolsAction");function A({server:a,proxyBaseUrl:e,open:f,onClose:g}){let{t:h}=(0,d.useTranslation)("web"),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),[t,u]=(0,c.useState)(null),v=(0,c.useCallback)(async a=>{m(!0),o(null);try{let b=await z(a);k(b.tools),b.error&&o(b.error),u(a)}catch{o("Failed to load tools")}finally{m(!1)}},[]);if((0,c.useEffect)(()=>{f&&a&&t!==a.server_name&&v(a.server_name)},[f,a,t,v]),!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,serverName:a.server_name}),(0,b.jsx)(r.Separator,{className:"my-4"}),(0,b.jsx)("h3",{className:"mb-3 text-sm font-semibold",children:h("mcpServers.connect.title")}),(0,b.jsx)(x,{proxyBaseUrl:e,serverName:a.server_name})]})}let B=(0,y.createServerReference)("003eb8cb51501bbc7f537effacfeb8932880f2b63e",y.callServer,void 0,y.findSourceMapURL,"fetchMcpServersAction"),C=["all","http","sse","stdio"];a.s(["McpServersPageClient",0,function({proxyConfigured:a,proxyBaseUrl:k}){let{t:l}=(0,d.useTranslation)("web"),[m,n]=(0,c.useState)(""),[p,q]=(0,c.useState)("all"),[r,s]=(0,c.useState)(null),[t,u]=(0,c.useState)([]),[v,w]=(0,c.useState)(!0),[x,y]=(0,c.useState)(null);(0,c.useEffect)(()=>{a?B().then(a=>{u(a.servers),a.error&&y(a.error)}).catch(()=>{y(l("mcpServers.fetchError"))}).finally(()=>{w(!1)}):w(!1)},[a,l]);let z=(0,c.useMemo)(()=>t.filter(a=>{let b=m.toLowerCase(),c=!b||a.name.toLowerCase().includes(b)||(a.mcp_info?.description??"").toLowerCase().includes(b),d="all"===p||a.transport===p;return c&&d}),[t,m,p]);return a?v?(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8",children:(0,b.jsxs)("p",{className:"text-muted-foreground",children:[l("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:l("mcpServers.title")}),x?(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:x})]})}):null,(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:l("mcpServers.subtitle")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.Input,{placeholder:l("mcpServers.searchPlaceholder"),value:m,onChange:a=>n(a.target.value),className:"max-w-xs"}),(0,b.jsx)("div",{className:"flex gap-1",children:C.map(a=>(0,b.jsx)(i.Badge,{variant:p===a?"default":"outline",className:"cursor-pointer",onClick:()=>q(a),children:"all"===a?l("mcpServers.filter.all"):l(`mcpServers.transport.${a}`,a.toUpperCase())},a))})]}),0===z.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,b.jsx)(j.EmptyState,{icon:0===t.length?(0,b.jsx)(g.Server,{className:"h-8 w-8"}):(0,b.jsx)(f.Search,{className:"h-8 w-8"}),title:0===t.length?l("mcpServers.noServers"):l("mcpServers.noResults")})}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:z.map(a=>(0,b.jsx)(o,{server:a,onSelect:s},a.server_id))}),(0,b.jsx)(A,{server:r,proxyBaseUrl:k,open:!!r,onClose:()=>s(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:l("mcpServers.noProxy")})})}],6790)}];
9
-
10
- //# sourceMappingURL=0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../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/components/features/mcp-servers/mcp-connect-instructions.tsx","../../../../../../../src/presentation/web/app/actions/data%3A61ae2f%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.tsx","../../../../../../../src/presentation/web/app/actions/data%3A89a84d%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":["'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 proxyBaseUrl: string;\n}\n\nconst TRANSPORT_FILTERS = ['all', 'http', 'sse', 'stdio'] as const;\n\nexport function McpServersPageClient({ proxyConfigured, proxyBaseUrl }: McpServersPageClientProps) {\n const { t } = useTranslation('web');\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 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 proxyBaseUrl={proxyBaseUrl}\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('web');\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 /**\n * The server name that these tools belong to. Used to strip the\n * `{serverName}-` prefix from tool names for nicer display.\n */\n serverName: string;\n}\n\ninterface DisplayTool {\n displayName: string;\n description?: string;\n key: string;\n}\n\n/**\n * Normalize tools by stripping the `{serverName}-` prefix if present.\n *\n * LiteLLM sometimes prefixes tool names with the server alias (e.g.,\n * `github_mcp-list_issues`). When we're displaying tools for a single\n * known server, the prefix is redundant — strip it for cleaner UI.\n *\n * Exported for unit testing.\n */\nexport function stripServerPrefix(tools: McpToolInfo[], serverName: string): DisplayTool[] {\n const prefix = `${serverName}-`;\n return tools\n .map((tool) => {\n const displayName = tool.name.startsWith(prefix) ? tool.name.slice(prefix.length) : tool.name;\n return {\n displayName,\n description: tool.description,\n key: tool.name,\n };\n })\n .sort((a, b) => a.displayName.localeCompare(b.displayName));\n}\n\nexport function McpToolList({ tools, serverName }: McpToolListProps) {\n const { t } = useTranslation('web');\n const displayTools = useMemo(() => stripServerPrefix(tools, serverName), [tools, serverName]);\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-2\">\n {displayTools.map((tool) => (\n <div key={tool.key} className=\"rounded-md border p-2\">\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 );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@/components/ui/button';\nimport { Check, Copy } from 'lucide-react';\n\ninterface McpConnectInstructionsProps {\n proxyBaseUrl: string;\n serverName: string;\n}\n\ntype ClientId = 'claude-code' | 'cursor' | 'vscode' | 'gemini' | 'codex' | 'curl';\n\ninterface ClientOption {\n id: ClientId;\n label: string;\n}\n\nconst CLIENTS: ClientOption[] = [\n { id: 'claude-code', label: 'Claude Code' },\n { id: 'cursor', label: 'Cursor' },\n { id: 'vscode', label: 'VS Code' },\n { id: 'gemini', label: 'Gemini CLI' },\n { id: 'codex', label: 'Codex CLI' },\n { id: 'curl', label: 'cURL' },\n];\n\n/**\n * Generate copy-pasteable connection snippets for various MCP clients.\n *\n * The LiteLLM proxy exposes each MCP server at {proxyBaseUrl}/{serverName}/mcp\n * and authenticates via the `x-litellm-api-key: Bearer <key>` header.\n *\n * All snippets use `<LITELLM_API_KEY>` as a placeholder that the user must\n * replace with their actual virtual key — we never inline a real key into\n * copyable instructions.\n */\nexport function buildSnippet(clientId: ClientId, proxyBaseUrl: string, serverName: string): string {\n const endpoint = `${proxyBaseUrl.replace(/\\/$/, '')}/${serverName}/mcp`;\n\n switch (clientId) {\n case 'claude-code':\n // Claude Code supports `claude mcp add` command\n return [\n `claude mcp add --transport http ${serverName} \\\\`,\n ` ${endpoint} \\\\`,\n ` --header \"x-litellm-api-key: Bearer <LITELLM_API_KEY>\"`,\n ].join('\\n');\n\n case 'cursor':\n // Cursor: ~/.cursor/mcp.json\n return JSON.stringify(\n {\n mcpServers: {\n [serverName]: {\n url: endpoint,\n headers: {\n 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',\n },\n },\n },\n },\n null,\n 2\n );\n\n case 'vscode':\n // VS Code / Copilot: settings.json under \"mcp\"\n return JSON.stringify(\n {\n mcp: {\n servers: {\n [serverName]: {\n type: 'http',\n url: endpoint,\n headers: {\n 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',\n },\n },\n },\n },\n },\n null,\n 2\n );\n\n case 'gemini':\n // Gemini CLI: ~/.gemini/settings.json or project .gemini/settings.json\n return JSON.stringify(\n {\n mcpServers: {\n [serverName]: {\n httpUrl: endpoint,\n headers: {\n 'x-litellm-api-key': 'Bearer <LITELLM_API_KEY>',\n },\n },\n },\n },\n null,\n 2\n );\n\n case 'codex':\n // Codex CLI: ~/.codex/config.toml\n return [\n `[mcp_servers.${serverName}]`,\n `url = \"${endpoint}\"`,\n `headers = { \"x-litellm-api-key\" = \"Bearer <LITELLM_API_KEY>\" }`,\n ].join('\\n');\n\n case 'curl':\n return [\n `curl --location '${endpoint}' \\\\`,\n ` --header 'Content-Type: application/json' \\\\`,\n ` --header 'x-litellm-api-key: Bearer <LITELLM_API_KEY>' \\\\`,\n ` --data '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\"}'`,\n ].join('\\n');\n }\n}\n\nexport function McpConnectInstructions({ proxyBaseUrl, serverName }: McpConnectInstructionsProps) {\n const { t } = useTranslation('web');\n const [activeClient, setActiveClient] = useState<ClientId>('claude-code');\n const [copied, setCopied] = useState(false);\n\n const snippet = buildSnippet(activeClient, proxyBaseUrl, serverName);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(snippet);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n } catch {\n // Clipboard not available (e.g., insecure context) — silently ignore.\n }\n };\n\n return (\n <div className=\"space-y-3\">\n <div className=\"flex flex-wrap gap-1\" role=\"tablist\">\n {CLIENTS.map((client) => (\n <button\n key={client.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeClient === client.id}\n onClick={() => setActiveClient(client.id)}\n className={\n activeClient === client.id\n ? 'bg-primary text-primary-foreground rounded-md px-2.5 py-1 text-xs font-medium'\n : 'border-border hover:bg-muted rounded-md border px-2.5 py-1 text-xs'\n }\n >\n {client.label}\n </button>\n ))}\n </div>\n\n <div className=\"relative\">\n <pre className=\"bg-muted max-h-64 overflow-auto rounded-md p-3 pr-10 font-mono text-[11px] leading-relaxed\">\n <code>{snippet}</code>\n </pre>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute top-1 right-1 h-7 w-7\"\n onClick={handleCopy}\n aria-label={t('mcpServers.connect.copy')}\n >\n {copied ? (\n <Check className=\"text-primary h-3.5 w-3.5\" />\n ) : (\n <Copy className=\"h-3.5 w-3.5\" />\n )}\n </Button>\n </div>\n\n <p className=\"text-muted-foreground text-xs\">{t('mcpServers.connect.replaceKey')}</p>\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"401ba49ea4f9ca43f01491e2327308b75f41aab452\":{\"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(\"401ba49ea4f9ca43f01491e2327308b75f41aab452\",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 { McpConnectInstructions } from './mcp-connect-instructions';\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 proxyBaseUrl: 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 proxyBaseUrl,\n open,\n onClose,\n}: McpServerDetailDrawerProps) {\n const { t } = useTranslation('web');\n const [tools, setTools] = useState<McpToolInfo[]>([]);\n const [loadingTools, setLoadingTools] = useState(false);\n const [toolError, setToolError] = useState<string | null>(null);\n const [loadedServerName, setLoadedServerName] = useState<string | null>(null);\n\n const loadTools = useCallback(async (serverName: string) => {\n setLoadingTools(true);\n setToolError(null);\n try {\n const result = await fetchMcpServerToolsAction(serverName);\n setTools(result.tools);\n if (result.error) setToolError(result.error);\n setLoadedServerName(serverName);\n } catch {\n setToolError('Failed to load tools');\n } finally {\n setLoadingTools(false);\n }\n }, []);\n\n useEffect(() => {\n if (!open || !server) return;\n // Re-fetch whenever the drawer opens for a different server.\n if (loadedServerName === server.server_name) return;\n loadTools(server.server_name);\n }, [open, server, loadedServerName, 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} serverName={server.server_name} />\n )}\n\n <Separator className=\"my-4\" />\n\n <h3 className=\"mb-3 text-sm font-semibold\">{t('mcpServers.connect.title')}</h3>\n <McpConnectInstructions proxyBaseUrl={proxyBaseUrl} serverName={server.server_name} />\n </BaseDrawer>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"003eb8cb51501bbc7f537effacfeb8932880f2b63e\":{\"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(\"003eb8cb51501bbc7f537effacfeb8932880f2b63e\",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":["d"],"mappings":"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","ignoreList":[7]}
@@ -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)},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)},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)("00c76a9a56817350d40436b3e6281e4aaaf2a10236",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__0mwao26._.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/check.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%3A2ba935%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 = [['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","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__ [{\"00c76a9a56817350d40436b3e6281e4aaaf2a10236\":{\"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(\"00c76a9a56817350d40436b3e6281e4aaaf2a10236\",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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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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","ignoreList":[0,1,2,3,4,5,6,7,9,10,12,13,14,15,16,18,19,20,21,22,23,24,25,26,30]}
@@ -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])}];
2
-
3
- //# sourceMappingURL=_0av5r-b._.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"],"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"],"names":["EmptyState","icon","title","description","action","className","props","Card","ref","displayName","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"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","ignoreList":[0,1]}