@shipit-ai/cli 1.172.0-pr16.b31ecd3 → 1.172.0

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 (346) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +0 -5
  2. package/dist/packages/core/src/application/ports/output/services/index.d.ts +0 -1
  3. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  4. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  5. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +0 -1
  6. package/dist/packages/core/src/domain/generated/output.d.ts +0 -4
  7. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  9. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +0 -3
  10. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +0 -6
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -1
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +0 -2
  15. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +2 -3
  17. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
  18. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +0 -1
  19. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  20. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +0 -7
  21. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +0 -2
  23. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +0 -1
  25. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  26. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  27. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  28. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +0 -1
  29. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  30. package/dist/src/presentation/web/hooks/feature-flags-context.js +0 -1
  31. package/dist/src/presentation/web/lib/feature-flags.d.ts +0 -2
  32. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  33. package/dist/src/presentation/web/lib/feature-flags.js +0 -6
  34. package/dist/translations/ar/web.json +12 -49
  35. package/dist/translations/de/web.json +18 -69
  36. package/dist/translations/en/web.json +13 -50
  37. package/dist/translations/es/web.json +13 -50
  38. package/dist/translations/fr/web.json +13 -50
  39. package/dist/translations/he/web.json +13 -50
  40. package/dist/translations/pt/web.json +13 -50
  41. package/dist/translations/ru/web.json +13 -50
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/package.json +2 -2
  44. package/web/.next/BUILD_ID +1 -1
  45. package/web/.next/app-path-routes-manifest.json +0 -1
  46. package/web/.next/build-manifest.json +3 -3
  47. package/web/.next/fallback-build-manifest.json +3 -3
  48. package/web/.next/prerender-manifest.json +3 -3
  49. package/web/.next/required-server-files.js +3 -3
  50. package/web/.next/required-server-files.json +3 -3
  51. package/web/.next/routes-manifest.json +0 -6
  52. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  53. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  57. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  61. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  62. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  65. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  66. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  69. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  70. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  73. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  74. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  77. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  78. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  81. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  82. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  85. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  86. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  89. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  90. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  93. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  94. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  97. package/web/.next/server/app/(dashboard)/page.js +1 -1
  98. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  101. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  102. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  103. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  105. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  106. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/_global-error.html +1 -1
  109. package/web/.next/server/app/_global-error.rsc +1 -1
  110. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  111. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  112. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  113. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  114. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  115. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  116. package/web/.next/server/app/_not-found/page.js +1 -1
  117. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  118. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  119. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  120. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  121. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  122. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  123. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  124. package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
  125. package/web/.next/server/app/plugins/page.js +1 -1
  126. package/web/.next/server/app/plugins/page.js.nft.json +1 -1
  127. package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
  129. package/web/.next/server/app/settings/page.js +1 -1
  130. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  131. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  133. package/web/.next/server/app/skills/page.js +1 -1
  134. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  135. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  137. package/web/.next/server/app/tools/page.js +1 -1
  138. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  139. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  141. package/web/.next/server/app/version/page.js +1 -1
  142. package/web/.next/server/app/version/page.js.nft.json +1 -1
  143. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app-paths-manifest.json +0 -1
  145. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  146. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  147. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  148. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  150. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  152. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0un-3~2.js +1 -1
  154. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  155. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js +3 -0
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js.map +1 -0
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__11-~i9u._.js +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  176. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/{_12y_u2z._.js → _05fk0a4._.js} +2 -2
  178. package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +1 -0
  179. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  180. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/{_1031n_-._.js → _083k45~._.js} +2 -2
  182. package/web/.next/server/chunks/ssr/{_1031n_-._.js.map → _083k45~._.js.map} +1 -1
  183. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  184. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  186. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  188. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  190. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/{_0ig8swf._.js → _0ik5uly._.js} +2 -2
  192. package/web/.next/server/chunks/ssr/{_0ig8swf._.js.map → _0ik5uly._.js.map} +1 -1
  193. package/web/.next/server/chunks/ssr/_0i~-084._.js +3 -0
  194. package/web/.next/server/chunks/ssr/_0i~-084._.js.map +1 -0
  195. package/web/.next/server/chunks/ssr/_0o.xc6x._.js +1 -1
  196. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  197. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/_0pqw.55._.js +3 -0
  199. package/web/.next/server/chunks/ssr/{_04z1jg3._.js.map → _0pqw.55._.js.map} +1 -1
  200. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  201. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  203. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/{_0.rsra~._.js → _0tcccbb._.js} +2 -2
  205. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -0
  206. package/web/.next/server/chunks/ssr/_0u3d8.n._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  208. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  210. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/_0ygafoy._.js +1 -1
  212. package/web/.next/server/chunks/ssr/_0ygafoy._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  214. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  216. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/_10joy2y._.js +3 -0
  218. package/web/.next/server/chunks/ssr/{_096x3u~._.js.map → _10joy2y._.js.map} +1 -1
  219. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  220. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/{_0-z2xjv._.js → _13o1d1i._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{_0-z2xjv._.js.map → _13o1d1i._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
  224. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
  225. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  226. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  228. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  230. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  231. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  232. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  233. package/web/.next/server/middleware-build-manifest.js +3 -3
  234. package/web/.next/server/next-font-manifest.js +1 -1
  235. package/web/.next/server/next-font-manifest.json +0 -3
  236. package/web/.next/server/pages/500.html +1 -1
  237. package/web/.next/server/server-reference-manifest.js +1 -1
  238. package/web/.next/server/server-reference-manifest.json +55 -145
  239. package/web/.next/static/chunks/{0sgbbtfp4hspl.js → 012cnd7koqv6d.js} +2 -2
  240. package/web/.next/static/chunks/02e5.-kk~ag_i.js +1 -0
  241. package/web/.next/static/chunks/{0tmm5-1w.tzfa.js → 07e~pkh4ikdtq.js} +1 -1
  242. package/web/.next/static/chunks/0aom-74j.wtkt.js +1 -0
  243. package/web/.next/static/chunks/{14e8.v2aj~k.c.js → 0aworyfo5xz3f.js} +1 -1
  244. package/web/.next/static/chunks/{0pm3xcdn669n~.js → 0b2pi58fg3lt3.js} +1 -1
  245. package/web/.next/static/chunks/{0v1l16yu5yi0-.js → 0ddwj6.~yj.u5.js} +1 -1
  246. package/web/.next/static/chunks/0lc0x8kcu46ae.js +1 -0
  247. package/web/.next/static/chunks/{0~~gsf7.gbljc.js → 0m0hb2m1lgy.r.js} +1 -1
  248. package/web/.next/static/chunks/{15lkkh2eg.w0h.js → 0o4m0k3642219.js} +1 -1
  249. package/web/.next/static/chunks/{0~64izks_7xas.js → 0prk~fhfyg~yg.js} +1 -1
  250. package/web/.next/static/chunks/{0hxu8.xyx0z4-.js → 0q.xmdro9u05g.js} +1 -1
  251. package/web/.next/static/chunks/{0m0h4rzeoumvg.js → 0rd5nu5ru3gje.js} +1 -1
  252. package/web/.next/static/chunks/{0f4oy2xirxwmj.js → 0rm13o3bvc9o..js} +1 -1
  253. package/web/.next/static/chunks/0ug478hm-8bog.js +5 -0
  254. package/web/.next/static/chunks/0uz.~ob1qtjhj.js +1 -0
  255. package/web/.next/static/chunks/0v7r7y~3e~oo6.css +1 -0
  256. package/web/.next/static/chunks/0vb84wrbin-ef.js +1 -0
  257. package/web/.next/static/chunks/{0g-.voyjeec~b.js → 100y4~jpwu8~t.js} +3 -3
  258. package/web/.next/static/chunks/{10j-adknfho63.js → 10rtagfoabp3b.js} +1 -1
  259. package/web/.next/static/chunks/{0bqd0fy0w5e4k.js → 16678zkd7o7-z.js} +1 -1
  260. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +0 -38
  261. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts.map +0 -1
  262. package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.js +0 -12
  263. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts +0 -23
  264. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts.map +0 -1
  265. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js +0 -49
  266. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts +0 -23
  267. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts.map +0 -1
  268. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js +0 -49
  269. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts +0 -11
  270. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts.map +0 -1
  271. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.js +0 -16
  272. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts +0 -2
  273. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts.map +0 -1
  274. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.js +0 -1
  275. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +0 -65
  276. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +0 -1
  277. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +0 -53
  278. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +0 -17
  279. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +0 -1
  280. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +0 -97
  281. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +0 -5
  282. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +0 -1
  283. package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +0 -11
  284. package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts +0 -5
  285. package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts.map +0 -1
  286. package/dist/src/presentation/web/app/actions/fetch-mcp-servers.js +0 -11
  287. package/dist/src/presentation/web/app/mcp-servers/page.d.ts +0 -2
  288. package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +0 -1
  289. package/dist/src/presentation/web/app/mcp-servers/page.js +0 -20
  290. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts +0 -8
  291. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts.map +0 -1
  292. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.js +0 -22
  293. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts +0 -15
  294. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts.map +0 -1
  295. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.js +0 -56
  296. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +0 -10
  297. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +0 -1
  298. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +0 -41
  299. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +0 -16
  300. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts.map +0 -1
  301. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +0 -42
  302. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +0 -6
  303. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +0 -1
  304. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +0 -50
  305. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts +0 -11
  306. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts.map +0 -1
  307. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +0 -12
  308. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +0 -23
  309. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +0 -1
  310. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +0 -48
  311. package/web/.next/server/app/mcp-servers/page/app-paths-manifest.json +0 -3
  312. package/web/.next/server/app/mcp-servers/page/build-manifest.json +0 -18
  313. package/web/.next/server/app/mcp-servers/page/next-font-manifest.json +0 -10
  314. package/web/.next/server/app/mcp-servers/page/react-loadable-manifest.json +0 -8
  315. package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +0 -161
  316. package/web/.next/server/app/mcp-servers/page.js +0 -17
  317. package/web/.next/server/app/mcp-servers/page.js.map +0 -5
  318. package/web/.next/server/app/mcp-servers/page.js.nft.json +0 -1
  319. package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +0 -3
  320. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js +0 -4
  321. package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js.map +0 -1
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +0 -3
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +0 -1
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +0 -3
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +0 -1
  326. package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +0 -1
  327. package/web/.next/server/chunks/ssr/_04z1jg3._.js +0 -3
  328. package/web/.next/server/chunks/ssr/_096x3u~._.js +0 -3
  329. package/web/.next/server/chunks/ssr/_0ia4o6_._.js +0 -3
  330. package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +0 -1
  331. package/web/.next/server/chunks/ssr/_0vqmej8._.js +0 -3
  332. package/web/.next/server/chunks/ssr/_0vqmej8._.js.map +0 -1
  333. package/web/.next/server/chunks/ssr/_12y_u2z._.js.map +0 -1
  334. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +0 -3
  335. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +0 -1
  336. package/web/.next/static/chunks/00h433i5-1v_-.css +0 -1
  337. package/web/.next/static/chunks/02ce237xcav6s.js +0 -1
  338. package/web/.next/static/chunks/04~wdwkqgr57x.js +0 -1
  339. package/web/.next/static/chunks/0b1d~7i5gfw1-.js +0 -1
  340. package/web/.next/static/chunks/0qjlmwu-skciu.js +0 -1
  341. package/web/.next/static/chunks/13nrt40z9yg93.js +0 -1
  342. package/web/.next/static/chunks/14qne_94ozzr5.js +0 -1
  343. package/web/.next/static/chunks/15izkiwfc5ym~.js +0 -5
  344. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → hWgOeXuQ6p-VoJvFXhk5g}/_buildManifest.js +0 -0
  345. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → hWgOeXuQ6p-VoJvFXhk5g}/_clientMiddlewareManifest.js +0 -0
  346. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → hWgOeXuQ6p-VoJvFXhk5g}/_ssgManifest.js +0 -0
@@ -1,53 +0,0 @@
1
- /**
2
- * Zod Schemas for MCP Server Browser Data Validation
3
- *
4
- * Validates all external data boundaries:
5
- * 1. LiteLLM proxy GET /public/mcp_hub response
6
- * 2. LiteLLM proxy GET /mcp-rest/tools/list response
7
- *
8
- * All data from external sources is untrusted. Strings are capped
9
- * to prevent excessive memory use in UI rendering.
10
- */
11
- import { z } from 'zod';
12
- const McpServerMcpInfoSchema = z
13
- .object({
14
- server_name: z.string().optional(),
15
- description: z
16
- .string()
17
- .default('')
18
- .transform((s) => s.slice(0, 2000)),
19
- mcp_server_cost_info: z.record(z.string(), z.unknown()).optional(),
20
- })
21
- .passthrough();
22
- const McpServerInfoSchema = z.object({
23
- server_id: z.string().transform((s) => s.slice(0, 200)),
24
- name: z.string().transform((s) => s.slice(0, 100)),
25
- alias: z.string().nullable().optional(),
26
- server_name: z.string().transform((s) => s.slice(0, 100)),
27
- url: z
28
- .string()
29
- .transform((s) => s.slice(0, 500))
30
- .optional(),
31
- transport: z.string().default('http'),
32
- spec_path: z.string().nullable().optional(),
33
- auth_type: z.string().default('none'),
34
- mcp_info: McpServerMcpInfoSchema.optional(),
35
- });
36
- export const McpServerListSchema = z.array(McpServerInfoSchema);
37
- const McpToolInfoSchema = z.object({
38
- name: z.string().transform((s) => s.slice(0, 200)),
39
- title: z
40
- .string()
41
- .transform((s) => s.slice(0, 200))
42
- .optional(),
43
- description: z
44
- .string()
45
- .default('')
46
- .transform((s) => s.slice(0, 2000)),
47
- inputSchema: z.record(z.string(), z.unknown()).optional(),
48
- });
49
- export const McpToolListResponseSchema = z.object({
50
- tools: z.array(McpToolInfoSchema),
51
- });
52
- // Fallback: tools/list may return a bare array in some LiteLLM versions
53
- export const McpToolListFallbackSchema = z.array(McpToolInfoSchema);
@@ -1,17 +0,0 @@
1
- /**
2
- * MCP Server Browser Service
3
- *
4
- * Implements IMcpServerBrowserService using Node 22+ native fetch for
5
- * read-only HTTP retrieval from LiteLLM proxy endpoints:
6
- * - GET /public/mcp_hub — list accessible MCP servers
7
- * - GET /mcp-rest/tools/list — list available MCP tools
8
- *
9
- * Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
10
- * Silent failure to empty arrays on any error.
11
- */
12
- import type { IMcpServerBrowserService, McpServerInfo, McpToolInfo } from '../../../application/ports/output/services/mcp-server-browser.interface.js';
13
- export declare class McpServerBrowserService implements IMcpServerBrowserService {
14
- fetchServers(proxyBaseUrl: string, apiKey?: string): Promise<McpServerInfo[]>;
15
- fetchTools(proxyBaseUrl: string, apiKey?: string): Promise<McpToolInfo[]>;
16
- }
17
- //# sourceMappingURL=mcp-server-browser.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server-browser.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,WAAW,EACZ,MAAM,4EAA4E,CAAC;AAUpF,qBAAa,uBAAwB,YAAW,wBAAwB;IAChE,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB7E,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAwBhF"}
@@ -1,97 +0,0 @@
1
- /**
2
- * MCP Server Browser Service
3
- *
4
- * Implements IMcpServerBrowserService using Node 22+ native fetch for
5
- * read-only HTTP retrieval from LiteLLM proxy endpoints:
6
- * - GET /public/mcp_hub — list accessible MCP servers
7
- * - GET /mcp-rest/tools/list — list available MCP tools
8
- *
9
- * Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
10
- * Silent failure to empty arrays on any error.
11
- */
12
- import { McpServerListSchema, McpToolListResponseSchema, McpToolListFallbackSchema, } from './mcp-server-browser.schema.js';
13
- const FETCH_TIMEOUT_MS = 10_000;
14
- const MAX_RESPONSE_SIZE = 5_000_000;
15
- export class McpServerBrowserService {
16
- async fetchServers(proxyBaseUrl, apiKey) {
17
- try {
18
- const url = parseAndValidateUrl(proxyBaseUrl);
19
- if (!url)
20
- return [];
21
- const endpoint = `${url}/public/mcp_hub`;
22
- const headers = buildHeaders(apiKey);
23
- const json = await fetchJson(endpoint, headers);
24
- if (json === null)
25
- return [];
26
- const parsed = McpServerListSchema.safeParse(json);
27
- if (!parsed.success)
28
- return [];
29
- return parsed.data;
30
- }
31
- catch {
32
- return [];
33
- }
34
- }
35
- async fetchTools(proxyBaseUrl, apiKey) {
36
- try {
37
- const url = parseAndValidateUrl(proxyBaseUrl);
38
- if (!url)
39
- return [];
40
- const endpoint = `${url}/mcp-rest/tools/list`;
41
- const headers = buildHeaders(apiKey);
42
- const json = await fetchJson(endpoint, headers);
43
- if (json === null)
44
- return [];
45
- // Try wrapped format first: { tools: [...] }
46
- const wrapped = McpToolListResponseSchema.safeParse(json);
47
- if (wrapped.success)
48
- return wrapped.data.tools;
49
- // Fallback: bare array [...]
50
- const bare = McpToolListFallbackSchema.safeParse(json);
51
- if (bare.success)
52
- return bare.data;
53
- return [];
54
- }
55
- catch {
56
- return [];
57
- }
58
- }
59
- }
60
- function parseAndValidateUrl(proxyBaseUrl) {
61
- try {
62
- const url = new URL(proxyBaseUrl);
63
- if (url.protocol !== 'http:' && url.protocol !== 'https:')
64
- return null;
65
- return url.toString().replace(/\/$/, '');
66
- }
67
- catch {
68
- return null;
69
- }
70
- }
71
- function buildHeaders(apiKey) {
72
- const headers = {};
73
- if (apiKey) {
74
- headers['Authorization'] = `Bearer ${apiKey}`;
75
- }
76
- return headers;
77
- }
78
- async function fetchJson(endpoint, headers) {
79
- const controller = new AbortController();
80
- const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
81
- try {
82
- const res = await fetch(endpoint, {
83
- signal: controller.signal,
84
- redirect: 'error',
85
- headers,
86
- });
87
- if (!res.ok)
88
- return null;
89
- const text = await res.text();
90
- if (text.length > MAX_RESPONSE_SIZE)
91
- return null;
92
- return JSON.parse(text);
93
- }
94
- finally {
95
- clearTimeout(timeout);
96
- }
97
- }
@@ -1,5 +0,0 @@
1
- import type { FetchMcpServerToolsResult } from '../../../../../packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js';
2
- export declare function fetchMcpServerToolsAction(): Promise<FetchMcpServerToolsResult & {
3
- error?: string;
4
- }>;
5
- //# sourceMappingURL=fetch-mcp-server-tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-mcp-server-tools.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/fetch-mcp-server-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mFAAmF,CAAC;AAEnI,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,yBAAyB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAC/C,CAOA"}
@@ -1,11 +0,0 @@
1
- 'use server';
2
- import { resolve } from '../../lib/server-container.js';
3
- export async function fetchMcpServerToolsAction() {
4
- try {
5
- const useCase = resolve('FetchMcpServerToolsUseCase');
6
- return await useCase.execute();
7
- }
8
- catch {
9
- return { tools: [], error: 'Failed to fetch MCP server tools' };
10
- }
11
- }
@@ -1,5 +0,0 @@
1
- import type { FetchMcpServersResult } from '../../../../../packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js';
2
- export declare function fetchMcpServersAction(): Promise<FetchMcpServersResult & {
3
- error?: string;
4
- }>;
5
- //# sourceMappingURL=fetch-mcp-servers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-mcp-servers.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/fetch-mcp-servers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AAE1H,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAOjG"}
@@ -1,11 +0,0 @@
1
- 'use server';
2
- import { resolve } from '../../lib/server-container.js';
3
- export async function fetchMcpServersAction() {
4
- try {
5
- const useCase = resolve('FetchMcpServersUseCase');
6
- return await useCase.execute();
7
- }
8
- catch {
9
- return { servers: [], error: 'Failed to fetch MCP servers' };
10
- }
11
- }
@@ -1,2 +0,0 @@
1
- export default function McpServersPage(): Promise<import("react/jsx-runtime").JSX.Element>;
2
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/mcp-servers/page.tsx"],"names":[],"mappings":"AAMA,wBAA8B,cAAc,qDAc3C"}
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { notFound } from 'next/navigation';
3
- import { getFeatureFlags } from '../../lib/feature-flags.js';
4
- import { McpServersPageClient } from '../../components/features/mcp-servers/mcp-servers-page-client.js';
5
- import { resolve } from '../../lib/server-container.js';
6
- export default async function McpServersPage() {
7
- const flags = await getFeatureFlags();
8
- if (!flags.mcpServers)
9
- notFound();
10
- let proxyConfigured = false;
11
- try {
12
- const useCase = resolve('LoadSettingsUseCase');
13
- const settings = await useCase.execute();
14
- proxyConfigured = !!settings.litellmProxy?.baseUrl;
15
- }
16
- catch {
17
- // Settings not available
18
- }
19
- return _jsx(McpServersPageClient, { proxyConfigured: proxyConfigured });
20
- }
@@ -1,8 +0,0 @@
1
- import type { McpServerInfo } from '../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.js';
2
- interface McpServerCardProps {
3
- server: McpServerInfo;
4
- onSelect: (server: McpServerInfo) => void;
5
- }
6
- export declare function McpServerCard({ server, onSelect }: McpServerCardProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
8
- //# sourceMappingURL=mcp-server-card.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server-card.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-card.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gFAAgF,CAAC;AAEpH,UAAU,kBAAkB;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAQD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAyCrE"}
@@ -1,22 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useTranslation } from 'react-i18next';
4
- import { Card } from '../../ui/card.js';
5
- import { Badge } from '../../ui/badge.js';
6
- import { Server, Wifi, Terminal } from 'lucide-react';
7
- const TRANSPORT_ICONS = {
8
- http: Server,
9
- sse: Wifi,
10
- stdio: Terminal,
11
- };
12
- export function McpServerCard({ server, onSelect }) {
13
- const { t } = useTranslation();
14
- const TransportIcon = TRANSPORT_ICONS[server.transport] ?? Server;
15
- const description = server.mcp_info?.description ?? '';
16
- return (_jsxs(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: () => onSelect(server), onKeyDown: (e) => {
17
- if (e.key === 'Enter' || e.key === ' ') {
18
- e.preventDefault();
19
- onSelect(server);
20
- }
21
- }, children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(TransportIcon, { className: "text-muted-foreground h-4 w-4 shrink-0" }), _jsx("h3", { className: "text-sm font-semibold", children: server.name })] }), _jsx(Badge, { variant: "outline", className: "shrink-0 text-xs", children: t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase()) })] }), description ? (_jsx("p", { className: "text-muted-foreground mt-2 line-clamp-2 text-xs", children: description })) : null, _jsx("div", { className: "mt-3 flex items-center gap-2", children: server.auth_type && server.auth_type !== 'none' ? (_jsx(Badge, { variant: "secondary", className: "text-xs", children: t(`mcpServers.authType.${server.auth_type}`, server.auth_type) })) : null })] }));
22
- }
@@ -1,15 +0,0 @@
1
- import type { StoryObj } from '@storybook/react-vite';
2
- import { McpServerCard } from './mcp-server-card.js';
3
- declare const meta: {
4
- title: string;
5
- component: typeof McpServerCard;
6
- args: {
7
- onSelect: () => undefined;
8
- };
9
- };
10
- export default meta;
11
- type Story = StoryObj<typeof meta>;
12
- export declare const HttpTransport: Story;
13
- export declare const SseTransport: Story;
14
- export declare const StdioTransport: Story;
15
- //# sourceMappingURL=mcp-server-card.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server-card.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAA,MAAM,IAAI;;;;;;CAM4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAc5B,CAAC"}
@@ -1,56 +0,0 @@
1
- import { McpServerCard } from './mcp-server-card.js';
2
- const meta = {
3
- title: 'Features/McpServers/McpServerCard',
4
- component: McpServerCard,
5
- args: {
6
- onSelect: () => undefined,
7
- },
8
- };
9
- export default meta;
10
- export const HttpTransport = {
11
- args: {
12
- server: {
13
- server_id: 'a1b2c3d4',
14
- name: 'deepwiki-mcp',
15
- server_name: 'deepwiki-mcp',
16
- url: 'https://mcp.deepwiki.com/mcp',
17
- transport: 'http',
18
- auth_type: 'none',
19
- mcp_info: {
20
- server_name: 'deepwiki-mcp',
21
- description: 'Search and read documentation from any public repository',
22
- },
23
- },
24
- },
25
- };
26
- export const SseTransport = {
27
- args: {
28
- server: {
29
- server_id: 'b2c3d4e5',
30
- name: 'github-mcp',
31
- server_name: 'github_mcp',
32
- url: 'https://api.githubcopilot.com/mcp',
33
- transport: 'sse',
34
- auth_type: 'bearer_token',
35
- mcp_info: {
36
- server_name: 'github_mcp',
37
- description: 'Interact with GitHub repositories, issues, and pull requests',
38
- },
39
- },
40
- },
41
- };
42
- export const StdioTransport = {
43
- args: {
44
- server: {
45
- server_id: 'c3d4e5f6',
46
- name: 'local-db-tools',
47
- server_name: 'local_db_tools',
48
- transport: 'stdio',
49
- auth_type: 'none',
50
- mcp_info: {
51
- server_name: 'local_db_tools',
52
- description: 'Query and manage local development databases',
53
- },
54
- },
55
- },
56
- };
@@ -1,10 +0,0 @@
1
- import type { McpServerInfo } from '../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.js';
2
- interface McpServerDetailDrawerProps {
3
- server: McpServerInfo | null;
4
- serverNames: string[];
5
- open: boolean;
6
- onClose: () => void;
7
- }
8
- export declare function McpServerDetailDrawer({ server, serverNames, open, onClose, }: McpServerDetailDrawerProps): import("react/jsx-runtime").JSX.Element | null;
9
- export {};
10
- //# sourceMappingURL=mcp-server-detail-drawer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server-detail-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,gFAAgF,CAAC;AAExF,UAAU,0BAA0B;IAClC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAYD,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,IAAI,EACJ,OAAO,GACR,EAAE,0BAA0B,kDAqE5B"}
@@ -1,41 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState, useCallback } from 'react';
4
- import { useTranslation } from 'react-i18next';
5
- import { BaseDrawer } from '../../common/base-drawer/index.js';
6
- import { DrawerTitle, DrawerDescription } from '../../ui/drawer.js';
7
- import { Separator } from '../../ui/separator.js';
8
- import { Badge } from '../../ui/badge.js';
9
- import { McpToolList } from './mcp-tool-list.js';
10
- import { fetchMcpServerToolsAction } from '../../../app/actions/fetch-mcp-server-tools.js';
11
- function isValidDisplayUrl(url) {
12
- if (!url)
13
- return false;
14
- try {
15
- const parsed = new URL(url);
16
- return parsed.protocol === 'http:' || parsed.protocol === 'https:';
17
- }
18
- catch {
19
- return false;
20
- }
21
- }
22
- export function McpServerDetailDrawer({ server, serverNames, open, onClose, }) {
23
- const { t } = useTranslation();
24
- const [tools, setTools] = useState([]);
25
- const [loadingTools, setLoadingTools] = useState(false);
26
- const loadTools = useCallback(async () => {
27
- setLoadingTools(true);
28
- const result = await fetchMcpServerToolsAction();
29
- setTools(result.tools);
30
- setLoadingTools(false);
31
- }, []);
32
- useEffect(() => {
33
- if (open && server && tools.length === 0) {
34
- loadTools();
35
- }
36
- }, [open, server, tools.length, loadTools]);
37
- if (!server)
38
- return null;
39
- const description = server.mcp_info?.description ?? '';
40
- return (_jsxs(BaseDrawer, { open: open, onClose: onClose, children: [_jsx(DrawerTitle, { children: server.name }), description ? _jsx(DrawerDescription, { children: description }) : null, _jsx(Separator, { className: "my-4" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs", children: t('mcpServers.detail.serverName') }), _jsx("span", { className: "font-mono text-xs", children: server.server_name })] }), isValidDisplayUrl(server.url) ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs", children: t('mcpServers.detail.url') }), _jsx("span", { className: "max-w-[200px] truncate font-mono text-xs", children: server.url })] })) : null, _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs", children: t('mcpServers.detail.transport') }), _jsx(Badge, { variant: "outline", className: "text-xs", children: t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase()) })] }), server.auth_type && server.auth_type !== 'none' ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs", children: t('mcpServers.detail.authType') }), _jsx(Badge, { variant: "secondary", className: "text-xs", children: t(`mcpServers.authType.${server.auth_type}`, server.auth_type) })] })) : null] }), _jsx(Separator, { className: "my-4" }), _jsx("h3", { className: "mb-3 text-sm font-semibold", children: t('mcpServers.tools.title') }), loadingTools ? (_jsxs("p", { className: "text-muted-foreground text-sm", children: [t('accessibility.loading'), "..."] })) : (_jsx(McpToolList, { tools: tools, serverNames: serverNames }))] }));
41
- }
@@ -1,16 +0,0 @@
1
- import type { StoryObj } from '@storybook/react-vite';
2
- import { McpServerDetailDrawer } from './mcp-server-detail-drawer.js';
3
- declare const meta: {
4
- title: string;
5
- component: typeof McpServerDetailDrawer;
6
- args: {
7
- open: true;
8
- onClose: () => undefined;
9
- serverNames: string[];
10
- };
11
- };
12
- export default meta;
13
- type Story = StoryObj<typeof meta>;
14
- export declare const WithTools: Story;
15
- export declare const NoTools: Story;
16
- //# sourceMappingURL=mcp-server-detail-drawer.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server-detail-drawer.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,QAAA,MAAM,IAAI;;;;;;;;CAQoC,CAAC;AAE/C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAevB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAcrB,CAAC"}
@@ -1,42 +0,0 @@
1
- import { McpServerDetailDrawer } from './mcp-server-detail-drawer.js';
2
- const meta = {
3
- title: 'Features/McpServers/McpServerDetailDrawer',
4
- component: McpServerDetailDrawer,
5
- args: {
6
- open: true,
7
- onClose: () => undefined,
8
- serverNames: ['deepwiki-mcp', 'github_mcp'],
9
- },
10
- };
11
- export default meta;
12
- export const WithTools = {
13
- args: {
14
- server: {
15
- server_id: 'a1b2c3d4',
16
- name: 'deepwiki-mcp',
17
- server_name: 'deepwiki-mcp',
18
- url: 'https://mcp.deepwiki.com/mcp',
19
- transport: 'http',
20
- auth_type: 'none',
21
- mcp_info: {
22
- server_name: 'deepwiki-mcp',
23
- description: 'Search and read documentation from any public repository',
24
- },
25
- },
26
- },
27
- };
28
- export const NoTools = {
29
- args: {
30
- server: {
31
- server_id: 'c3d4e5f6',
32
- name: 'empty-server',
33
- server_name: 'empty_server',
34
- transport: 'stdio',
35
- auth_type: 'none',
36
- mcp_info: {
37
- server_name: 'empty_server',
38
- description: 'A server with no tools configured',
39
- },
40
- },
41
- },
42
- };
@@ -1,6 +0,0 @@
1
- interface McpServersPageClientProps {
2
- proxyConfigured: boolean;
3
- }
4
- export declare function McpServersPageClient({ proxyConfigured }: McpServersPageClientProps): import("react/jsx-runtime").JSX.Element;
5
- export {};
6
- //# sourceMappingURL=mcp-servers-page-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-servers-page-client.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.tsx"],"names":[],"mappings":"AAaA,UAAU,yBAAyB;IACjC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAID,wBAAgB,oBAAoB,CAAC,EAAE,eAAe,EAAE,EAAE,yBAAyB,2CA0GlF"}
@@ -1,50 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useEffect, useMemo } from 'react';
4
- import { useTranslation } from 'react-i18next';
5
- import { AlertCircle, Search, Server } from 'lucide-react';
6
- import { Input } from '../../ui/input.js';
7
- import { Badge } from '../../ui/badge.js';
8
- import { EmptyState } from '../../common/empty-state/index.js';
9
- import { McpServerCard } from './mcp-server-card.js';
10
- import { McpServerDetailDrawer } from './mcp-server-detail-drawer.js';
11
- import { fetchMcpServersAction } from '../../../app/actions/fetch-mcp-servers.js';
12
- const TRANSPORT_FILTERS = ['all', 'http', 'sse', 'stdio'];
13
- export function McpServersPageClient({ proxyConfigured }) {
14
- const { t } = useTranslation();
15
- const [searchQuery, setSearchQuery] = useState('');
16
- const [transportFilter, setTransportFilter] = useState('all');
17
- const [selectedServer, setSelectedServer] = useState(null);
18
- const [servers, setServers] = useState([]);
19
- const [loading, setLoading] = useState(true);
20
- useEffect(() => {
21
- if (!proxyConfigured) {
22
- setLoading(false);
23
- return;
24
- }
25
- fetchMcpServersAction().then((result) => {
26
- setServers(result.servers);
27
- setLoading(false);
28
- });
29
- }, [proxyConfigured]);
30
- const serverNames = useMemo(() => servers.map((s) => s.server_name), [servers]);
31
- const filtered = useMemo(() => {
32
- return servers.filter((server) => {
33
- const query = searchQuery.toLowerCase();
34
- const matchesQuery = !query ||
35
- server.name.toLowerCase().includes(query) ||
36
- (server.mcp_info?.description ?? '').toLowerCase().includes(query);
37
- const matchesTransport = transportFilter === 'all' || server.transport === transportFilter;
38
- return matchesQuery && matchesTransport;
39
- });
40
- }, [servers, searchQuery, transportFilter]);
41
- if (!proxyConfigured) {
42
- return (_jsx("div", { className: "flex h-full items-center justify-center p-8", children: _jsx(EmptyState, { icon: _jsx(AlertCircle, { className: "h-8 w-8" }), title: t('mcpServers.noProxy') }) }));
43
- }
44
- if (loading) {
45
- return (_jsx("div", { className: "flex h-full items-center justify-center p-8", children: _jsxs("p", { className: "text-muted-foreground", children: [t('accessibility.loading'), "..."] }) }));
46
- }
47
- return (_jsxs("div", { className: "space-y-6 p-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold", children: t('mcpServers.title') }), _jsx("p", { className: "text-muted-foreground mt-1 text-sm", children: t('mcpServers.subtitle') })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsx(Input, { placeholder: t('mcpServers.searchPlaceholder'), value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), className: "max-w-xs" }), _jsx("div", { className: "flex gap-1", children: TRANSPORT_FILTERS.map((filter) => (_jsx(Badge, { variant: transportFilter === filter ? 'default' : 'outline', className: "cursor-pointer", onClick: () => setTransportFilter(filter), children: filter === 'all'
48
- ? t('mcpServers.filter.all')
49
- : t(`mcpServers.transport.${filter}`, filter.toUpperCase()) }, filter))) })] }), filtered.length === 0 ? (_jsx("div", { className: "flex items-center justify-center py-16", children: _jsx(EmptyState, { icon: servers.length === 0 ? _jsx(Server, { className: "h-8 w-8" }) : _jsx(Search, { className: "h-8 w-8" }), title: servers.length === 0 ? t('mcpServers.noServers') : t('mcpServers.noResults') }) })) : (_jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filtered.map((server) => (_jsx(McpServerCard, { server: server, onSelect: setSelectedServer }, server.server_id))) })), _jsx(McpServerDetailDrawer, { server: selectedServer, serverNames: serverNames, open: !!selectedServer, onClose: () => setSelectedServer(null) })] }));
50
- }
@@ -1,11 +0,0 @@
1
- import type { StoryObj } from '@storybook/react-vite';
2
- import { McpServersPageClient } from './mcp-servers-page-client.js';
3
- declare const meta: {
4
- title: string;
5
- component: typeof McpServersPageClient;
6
- };
7
- export default meta;
8
- type Story = StoryObj<typeof meta>;
9
- export declare const Default: Story;
10
- export declare const NoProxy: Story;
11
- //# sourceMappingURL=mcp-servers-page-client.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-servers-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,QAAA,MAAM,IAAI;;;CAGmC,CAAC;AAE9C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
@@ -1,12 +0,0 @@
1
- import { McpServersPageClient } from './mcp-servers-page-client.js';
2
- const meta = {
3
- title: 'Features/McpServers/McpServersPageClient',
4
- component: McpServersPageClient,
5
- };
6
- export default meta;
7
- export const Default = {
8
- args: { proxyConfigured: true },
9
- };
10
- export const NoProxy = {
11
- args: { proxyConfigured: false },
12
- };
@@ -1,23 +0,0 @@
1
- import type { McpToolInfo } from '../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.js';
2
- interface McpToolListProps {
3
- tools: McpToolInfo[];
4
- serverNames: string[];
5
- }
6
- interface GroupedTools {
7
- serverName: string;
8
- tools: {
9
- displayName: string;
10
- description?: string;
11
- }[];
12
- }
13
- /**
14
- * Groups tools by server name prefix.
15
- *
16
- * LiteLLM prefixes tool names with `{server_name}-` (e.g., `github_mcp-list_issues`).
17
- * We match each tool's name against known server names and strip the prefix for display.
18
- * Tools with no matching prefix go in an "Other" group.
19
- */
20
- export declare function groupToolsByServer(tools: McpToolInfo[], serverNames: string[]): GroupedTools[];
21
- export declare function McpToolList({ tools, serverNames }: McpToolListProps): import("react/jsx-runtime").JSX.Element;
22
- export {};
23
- //# sourceMappingURL=mcp-tool-list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-tool-list.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-tool-list.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gFAAgF,CAAC;AAElH,UAAU,gBAAgB;IACxB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CA2B9F;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,gBAAgB,2CAiCnE"}