@shipit-ai/cli 1.172.0-pr16.b31ecd3 → 1.173.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 (209) hide show
  1. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts +1 -1
  2. package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js +1 -1
  3. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +19 -3
  5. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -1
  6. package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +15 -4
  7. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -1
  8. package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +12 -3
  9. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -1
  10. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +1 -1
  11. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +12 -0
  12. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -0
  13. package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +32 -0
  14. package/dist/translations/ar/web.json +2 -1
  15. package/dist/translations/de/web.json +2 -1
  16. package/dist/translations/en/web.json +2 -1
  17. package/dist/translations/es/web.json +2 -1
  18. package/dist/translations/fr/web.json +2 -1
  19. package/dist/translations/he/web.json +2 -1
  20. package/dist/translations/pt/web.json +2 -1
  21. package/dist/translations/ru/web.json +2 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/package.json +1 -1
  24. package/web/.next/BUILD_ID +1 -1
  25. package/web/.next/build-manifest.json +3 -3
  26. package/web/.next/fallback-build-manifest.json +3 -3
  27. package/web/.next/prerender-manifest.json +3 -3
  28. package/web/.next/required-server-files.js +2 -2
  29. package/web/.next/required-server-files.json +2 -2
  30. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  31. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  34. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  37. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  40. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  43. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  46. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  49. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  52. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  55. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  58. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  61. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  64. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  67. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  70. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/_global-error.html +1 -1
  73. package/web/.next/server/app/_global-error.rsc +1 -1
  74. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  75. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  76. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  77. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  78. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  79. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  80. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  81. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  83. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  84. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  85. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  86. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  87. package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +13 -13
  88. package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -1
  89. package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
  91. package/web/.next/server/app/plugins/page.js.nft.json +1 -1
  92. package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
  94. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  95. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  97. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  98. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  100. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  101. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  103. package/web/.next/server/app/version/page.js.nft.json +1 -1
  104. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  106. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  107. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  109. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  111. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  113. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/_0-09vq7._.js +1 -1
  133. package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  135. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/_052jfzq._.js +3 -0
  137. package/web/.next/server/chunks/ssr/{_04z1jg3._.js.map → _052jfzq._.js.map} +1 -1
  138. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  139. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/_096x3u~._.js +1 -1
  141. package/web/.next/server/chunks/ssr/_096x3u~._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  143. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  145. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  147. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  149. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/{_0-z2xjv._.js → _0i0_q..._.js} +2 -2
  151. package/web/.next/server/chunks/ssr/{_0-z2xjv._.js.map → _0i0_q..._.js.map} +1 -1
  152. package/web/.next/server/chunks/ssr/_0ia4o6_._.js +1 -1
  153. package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/_0o.xc6x._.js +1 -1
  155. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  156. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  158. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  160. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  162. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  164. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/{_0ig8swf._.js → _0wl~vw0._.js} +2 -2
  166. package/web/.next/server/chunks/ssr/{_0ig8swf._.js.map → _0wl~vw0._.js.map} +1 -1
  167. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  170. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  172. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +1 -1
  174. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -1
  175. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
  176. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  178. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  179. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  180. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  182. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  183. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  184. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  185. package/web/.next/server/middleware-build-manifest.js +3 -3
  186. package/web/.next/server/pages/500.html +1 -1
  187. package/web/.next/server/server-reference-manifest.js +1 -1
  188. package/web/.next/server/server-reference-manifest.json +57 -57
  189. package/web/.next/static/chunks/{02ce237xcav6s.js → 0.zpc6-geo2pp.js} +1 -1
  190. package/web/.next/static/chunks/08tp-_of5~bcc.js +1 -0
  191. package/web/.next/static/chunks/{0f4oy2xirxwmj.js → 09ix490-00s4x.js} +1 -1
  192. package/web/.next/static/chunks/{0g-.voyjeec~b.js → 0ferlvybqru33.js} +2 -2
  193. package/web/.next/static/chunks/{0m0h4rzeoumvg.js → 0ghc-76~~v-cj.js} +1 -1
  194. package/web/.next/static/chunks/{0qjlmwu-skciu.js → 0hkfexnwbsfyg.js} +1 -1
  195. package/web/.next/static/chunks/{0~~gsf7.gbljc.js → 0j-doxnxl43yu.js} +1 -1
  196. package/web/.next/static/chunks/{0v1l16yu5yi0-.js → 0sliw7pn2d_57.js} +1 -1
  197. package/web/.next/static/chunks/{0b1d~7i5gfw1-.js → 0x_xky1fcolbm.js} +1 -1
  198. package/web/.next/static/chunks/{0bqd0fy0w5e4k.js → 0xmqx8qtb0njk.js} +1 -1
  199. package/web/.next/static/chunks/{0~64izks_7xas.js → 0yz729_n37__3.js} +1 -1
  200. package/web/.next/static/chunks/{14e8.v2aj~k.c.js → 0y~ts1~5mpg5h.js} +1 -1
  201. package/web/.next/static/chunks/0zy_h1essdthk.js +1 -0
  202. package/web/.next/static/chunks/{0tmm5-1w.tzfa.js → 11e3u3wkmfedd.js} +1 -1
  203. package/web/.next/static/chunks/{0hxu8.xyx0z4-.js → 156lo29queyhm.js} +1 -1
  204. package/web/.next/server/chunks/ssr/_04z1jg3._.js +0 -3
  205. package/web/.next/static/chunks/13nrt40z9yg93.js +0 -1
  206. package/web/.next/static/chunks/14qne_94ozzr5.js +0 -1
  207. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → 8igTmoo1g4DAuDf2Tup6h}/_buildManifest.js +0 -0
  208. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → 8igTmoo1g4DAuDf2Tup6h}/_clientMiddlewareManifest.js +0 -0
  209. /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → 8igTmoo1g4DAuDf2Tup6h}/_ssgManifest.js +0 -0
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Business Rules:
8
8
  * - Reads proxy URL from settings via ISettingsReader
9
- * - If proxy not configured or mcpServers flag disabled, returns empty array
9
+ * - If proxy not configured, returns empty array (flag gated at page level)
10
10
  * - Delegates to IMcpServerBrowserService for HTTP retrieval
11
11
  */
12
12
  import type { ISettingsReader } from '../../ports/output/services/settings-reader.interface.js';
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Business Rules:
8
8
  * - Reads proxy URL from settings via ISettingsReader
9
- * - If proxy not configured or mcpServers flag disabled, returns empty array
9
+ * - If proxy not configured, returns empty array (flag gated at page level)
10
10
  * - Delegates to IMcpServerBrowserService for HTTP retrieval
11
11
  */
12
12
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -1 +1 @@
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
+ {"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;AAGH,OAAO,KAAK,EACV,wBAAwB,EACxB,aAAa,EACb,WAAW,EACZ,MAAM,4EAA4E,CAAC;AAUpF,qBACa,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"}
@@ -9,10 +9,17 @@
9
9
  * Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
10
10
  * Silent failure to empty arrays on any error.
11
11
  */
12
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ };
18
+ import { injectable } from 'tsyringe';
12
19
  import { McpServerListSchema, McpToolListResponseSchema, McpToolListFallbackSchema, } from './mcp-server-browser.schema.js';
13
20
  const FETCH_TIMEOUT_MS = 10_000;
14
21
  const MAX_RESPONSE_SIZE = 5_000_000;
15
- export class McpServerBrowserService {
22
+ let McpServerBrowserService = class McpServerBrowserService {
16
23
  async fetchServers(proxyBaseUrl, apiKey) {
17
24
  try {
18
25
  const url = parseAndValidateUrl(proxyBaseUrl);
@@ -56,7 +63,11 @@ export class McpServerBrowserService {
56
63
  return [];
57
64
  }
58
65
  }
59
- }
66
+ };
67
+ McpServerBrowserService = __decorate([
68
+ injectable()
69
+ ], McpServerBrowserService);
70
+ export { McpServerBrowserService };
60
71
  function parseAndValidateUrl(proxyBaseUrl) {
61
72
  try {
62
73
  const url = new URL(proxyBaseUrl);
@@ -89,7 +100,12 @@ async function fetchJson(endpoint, headers) {
89
100
  const text = await res.text();
90
101
  if (text.length > MAX_RESPONSE_SIZE)
91
102
  return null;
92
- return JSON.parse(text);
103
+ try {
104
+ return JSON.parse(text);
105
+ }
106
+ catch {
107
+ return null;
108
+ }
93
109
  }
94
110
  finally {
95
111
  clearTimeout(timeout);
@@ -1 +1 @@
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
+ {"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,kDA+E5B"}
@@ -23,11 +23,22 @@ export function McpServerDetailDrawer({ server, serverNames, open, onClose, }) {
23
23
  const { t } = useTranslation();
24
24
  const [tools, setTools] = useState([]);
25
25
  const [loadingTools, setLoadingTools] = useState(false);
26
+ const [toolError, setToolError] = useState(null);
26
27
  const loadTools = useCallback(async () => {
27
28
  setLoadingTools(true);
28
- const result = await fetchMcpServerToolsAction();
29
- setTools(result.tools);
30
- setLoadingTools(false);
29
+ setToolError(null);
30
+ try {
31
+ const result = await fetchMcpServerToolsAction();
32
+ setTools(result.tools);
33
+ if (result.error)
34
+ setToolError(result.error);
35
+ }
36
+ catch {
37
+ setToolError('Failed to load tools');
38
+ }
39
+ finally {
40
+ setLoadingTools(false);
41
+ }
31
42
  }, []);
32
43
  useEffect(() => {
33
44
  if (open && server && tools.length === 0) {
@@ -37,5 +48,5 @@ export function McpServerDetailDrawer({ server, serverNames, open, onClose, }) {
37
48
  if (!server)
38
49
  return null;
39
50
  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 }))] }));
51
+ 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'), "..."] })) : toolError ? (_jsx("p", { className: "text-destructive text-sm", children: toolError })) : (_jsx(McpToolList, { tools: tools, serverNames: serverNames }))] }));
41
52
  }
@@ -1 +1 @@
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
+ {"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,2CA0HlF"}
@@ -17,16 +17,25 @@ export function McpServersPageClient({ proxyConfigured }) {
17
17
  const [selectedServer, setSelectedServer] = useState(null);
18
18
  const [servers, setServers] = useState([]);
19
19
  const [loading, setLoading] = useState(true);
20
+ const [error, setError] = useState(null);
20
21
  useEffect(() => {
21
22
  if (!proxyConfigured) {
22
23
  setLoading(false);
23
24
  return;
24
25
  }
25
- fetchMcpServersAction().then((result) => {
26
+ fetchMcpServersAction()
27
+ .then((result) => {
26
28
  setServers(result.servers);
29
+ if (result.error)
30
+ setError(result.error);
31
+ })
32
+ .catch(() => {
33
+ setError(t('mcpServers.fetchError'));
34
+ })
35
+ .finally(() => {
27
36
  setLoading(false);
28
37
  });
29
- }, [proxyConfigured]);
38
+ }, [proxyConfigured, t]);
30
39
  const serverNames = useMemo(() => servers.map((s) => s.server_name), [servers]);
31
40
  const filtered = useMemo(() => {
32
41
  return servers.filter((server) => {
@@ -44,7 +53,7 @@ export function McpServersPageClient({ proxyConfigured }) {
44
53
  if (loading) {
45
54
  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
55
  }
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'
56
+ return (_jsxs("div", { className: "space-y-6 p-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold", children: t('mcpServers.title') }), error ? (_jsx("div", { className: "border-destructive/50 bg-destructive/10 mt-2 rounded-md border p-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(AlertCircle, { className: "text-destructive h-4 w-4" }), _jsx("p", { className: "text-destructive text-sm", children: error })] }) })) : null, _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
57
  ? t('mcpServers.filter.all')
49
58
  : 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
59
  }
@@ -1 +1 @@
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"}
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,2CAoCnE"}
@@ -44,5 +44,5 @@ export function McpToolList({ tools, serverNames }) {
44
44
  if (tools.length === 0) {
45
45
  return _jsx("p", { className: "text-muted-foreground text-sm", children: t('mcpServers.tools.noTools') });
46
46
  }
47
- return (_jsx("div", { className: "space-y-4", children: grouped.map((group) => (_jsxs("div", { children: [_jsx("h4", { className: "text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase", children: group.serverName === 'other' ? t('mcpServers.tools.other') : group.serverName }), _jsx("div", { className: "space-y-2", children: group.tools.map((tool) => (_jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx(Badge, { variant: "outline", className: "font-mono text-xs", children: tool.displayName }) }), tool.description ? (_jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: tool.description })) : null] }, tool.displayName))) })] }, group.serverName))) }));
47
+ return (_jsx("div", { className: "space-y-4", children: grouped.map((group) => (_jsxs("div", { children: [_jsx("h4", { className: "text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase", children: group.serverName === 'other' ? t('mcpServers.tools.other') : group.serverName }), _jsx("div", { className: "space-y-2", children: group.tools.map((tool) => (_jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx(Badge, { variant: "outline", className: "font-mono text-xs", children: tool.displayName }) }), tool.description ? (_jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: tool.description })) : null] }, `${group.serverName}-${tool.displayName}`))) })] }, group.serverName))) }));
48
48
  }
@@ -0,0 +1,12 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { McpToolList } from './mcp-tool-list.js';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof McpToolList;
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const WithTools: Story;
10
+ export declare const NoTools: Story;
11
+ export declare const UnmatchedTools: Story;
12
+ //# sourceMappingURL=mcp-tool-list.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tool-list.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAA,MAAM,IAAI;;;CAG0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAUvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAQ5B,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { McpToolList } from './mcp-tool-list.js';
2
+ const meta = {
3
+ title: 'Features/McpServers/McpToolList',
4
+ component: McpToolList,
5
+ };
6
+ export default meta;
7
+ export const WithTools = {
8
+ args: {
9
+ serverNames: ['deepwiki-mcp', 'github_mcp'],
10
+ tools: [
11
+ { name: 'deepwiki-mcp-read_wiki', description: 'Read wiki contents' },
12
+ { name: 'deepwiki-mcp-search', description: 'Search documentation' },
13
+ { name: 'github_mcp-list_issues', description: 'List GitHub issues' },
14
+ { name: 'github_mcp-create_issue', description: 'Create a new issue' },
15
+ ],
16
+ },
17
+ };
18
+ export const NoTools = {
19
+ args: {
20
+ serverNames: ['deepwiki-mcp'],
21
+ tools: [],
22
+ },
23
+ };
24
+ export const UnmatchedTools = {
25
+ args: {
26
+ serverNames: ['deepwiki-mcp'],
27
+ tools: [
28
+ { name: 'deepwiki-mcp-read_wiki', description: 'Read wiki contents' },
29
+ { name: 'unknown-server-tool', description: 'Tool from unknown server' },
30
+ ],
31
+ },
32
+ };
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }
@@ -715,6 +715,7 @@
715
715
  "title": "Available Tools",
716
716
  "noTools": "No tools available",
717
717
  "other": "Other"
718
- }
718
+ },
719
+ "fetchError": "Failed to fetch MCP servers. Check your proxy configuration."
719
720
  }
720
721
  }