@shipit-ai/cli 1.173.1-pr18.cc1c3ce → 1.173.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +1 -9
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts +3 -7
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js +5 -6
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +0 -12
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +1 -11
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +2 -10
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +13 -50
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +1 -1
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +2 -2
- package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +1 -1
- package/dist/src/presentation/web/app/mcp-servers/page.js +1 -3
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +2 -2
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +8 -14
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +1 -2
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +3 -2
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +2 -2
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +13 -17
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +34 -21
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +8 -7
- package/dist/translations/ar/web.json +1 -6
- package/dist/translations/de/web.json +1 -6
- package/dist/translations/en/web.json +1 -6
- package/dist/translations/es/web.json +1 -6
- package/dist/translations/fr/web.json +1 -6
- package/dist/translations/he/web.json +1 -6
- package/dist/translations/pt/web.json +1 -6
- package/dist/translations/ru/web.json +1 -6
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -1
- package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/plugins/page.js.nft.json +1 -1
- package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
- package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_096x3u~._.js +1 -1
- package/web/.next/server/chunks/ssr/_096x3u~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js +3 -0
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js +3 -0
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0b~rt5k._.js → _0xn_dfh._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0b~rt5k._.js.map → _0xn_dfh._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_0g36k1q._.js → _0z6p8yi._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0g36k1q._.js.map → _0z6p8yi._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0ha3y7r._.js → _12i_bjl._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0ha3y7r._.js.map → _12i_bjl._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +57 -57
- package/web/.next/static/chunks/00h433i5-1v_-.css +1 -0
- package/web/.next/static/chunks/{0~z22-y-2-50b.js → 0242vp5_56bjp.js} +1 -1
- package/web/.next/static/chunks/{08-x1y93o~z1u.js → 07c0dde.-8.3e.js} +1 -1
- package/web/.next/static/chunks/{04mde8apvce...js → 084nyl7us-xbo.js} +1 -1
- package/web/.next/static/chunks/{0isdv5nl9ixzx.js → 0cgfywkcky60_.js} +1 -1
- package/web/.next/static/chunks/0jl9-2_wjbofj.js +1 -0
- package/web/.next/static/chunks/{0-479g9ihl1ga.js → 0j~279np0vu13.js} +1 -1
- package/web/.next/static/chunks/{02ow0rjxjqsob.js → 0k3fxd~lsx6h_.js} +1 -1
- package/web/.next/static/chunks/{0nw5kg.d92o~s.js → 0kv2-9owuv51~.js} +2 -2
- package/web/.next/static/chunks/0r9cddoy0xkhk.js +1 -0
- package/web/.next/static/chunks/{0gz0lgz7pvrb5.js → 0sgbbtfp4hspl.js} +1 -1
- package/web/.next/static/chunks/{17t4j5hdn_bcj.js → 0vscxcwhltksg.js} +2 -2
- package/web/.next/static/chunks/{06fk~iz2u90ux.js → 0xjj0-wsaziot.js} +1 -1
- package/web/.next/static/chunks/{0irjgz-p.9i6s.js → 11rfk7fre_6t2.js} +1 -1
- package/web/.next/static/chunks/123j391jw_zg4.js +1 -0
- package/web/.next/static/chunks/{163wx0qvsyhgb.js → 15zjq.s38l64~.js} +1 -1
- package/web/.next/static/chunks/{0nkxltjer~us7.js → 16nbcfv~__pas.js} +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts +0 -19
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.js +0 -108
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts +0 -11
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-connect-instructions.stories.js +0 -18
- package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js +0 -10
- package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0av5r-b._.js +0 -3
- package/web/.next/server/chunks/ssr/_0av5r-b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0fswe4r._.js +0 -3
- package/web/.next/server/chunks/ssr/_0fswe4r._.js.map +0 -1
- package/web/.next/static/chunks/05uewqqwl93w2.js +0 -8
- package/web/.next/static/chunks/0h2nh2s2b3ma2.css +0 -1
- package/web/.next/static/chunks/16mt3g3q98v_k.js +0 -1
- package/web/.next/static/chunks/173rm.h7j3_7c.js +0 -1
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_buildManifest.js +0 -0
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → soqWMnDMQRLxRyIj13kVU}/_ssgManifest.js +0 -0
package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts
CHANGED
|
@@ -33,14 +33,6 @@ export interface McpToolInfo {
|
|
|
33
33
|
}
|
|
34
34
|
export interface IMcpServerBrowserService {
|
|
35
35
|
fetchServers(proxyBaseUrl: string, apiKey?: string): Promise<McpServerInfo[]>;
|
|
36
|
-
|
|
37
|
-
* Fetch tools for a specific MCP server via JSON-RPC.
|
|
38
|
-
*
|
|
39
|
-
* LiteLLM exposes each MCP server at `{proxyBaseUrl}/{serverName}/mcp` and
|
|
40
|
-
* accepts standard MCP JSON-RPC requests. This method POSTs a
|
|
41
|
-
* `{"jsonrpc":"2.0","id":1,"method":"tools/list"}` body and parses the
|
|
42
|
-
* `result.tools` array from the response.
|
|
43
|
-
*/
|
|
44
|
-
fetchTools(proxyBaseUrl: string, serverName: string, apiKey?: string): Promise<McpToolInfo[]>;
|
|
36
|
+
fetchTools(proxyBaseUrl: string, apiKey?: string): Promise<McpToolInfo[]>;
|
|
45
37
|
}
|
|
46
38
|
//# sourceMappingURL=mcp-server-browser.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-browser.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E
|
|
1
|
+
{"version":3,"file":"mcp-server-browser.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC3E"}
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fetch MCP Server Tools Use Case
|
|
3
3
|
*
|
|
4
|
-
* Retrieves the list of MCP tools
|
|
5
|
-
*
|
|
4
|
+
* Retrieves the list of MCP tools from the configured LiteLLM proxy's
|
|
5
|
+
* REST tools/list endpoint.
|
|
6
6
|
*
|
|
7
7
|
* Business Rules:
|
|
8
8
|
* - Reads proxy URL from settings via ISettingsReader
|
|
9
9
|
* - If proxy not configured, returns empty array
|
|
10
|
-
* - Requires a server name to target a specific MCP server
|
|
11
10
|
* - Delegates to IMcpServerBrowserService for HTTP retrieval
|
|
12
11
|
*/
|
|
13
12
|
import type { ISettingsReader } from '../../ports/output/services/settings-reader.interface.js';
|
|
14
13
|
import type { IMcpServerBrowserService, McpToolInfo } from '../../ports/output/services/mcp-server-browser.interface.js';
|
|
15
|
-
export interface FetchMcpServerToolsInput {
|
|
16
|
-
serverName: string;
|
|
17
|
-
}
|
|
18
14
|
export interface FetchMcpServerToolsResult {
|
|
19
15
|
tools: McpToolInfo[];
|
|
20
16
|
}
|
|
@@ -22,6 +18,6 @@ export declare class FetchMcpServerToolsUseCase {
|
|
|
22
18
|
private readonly settingsReader;
|
|
23
19
|
private readonly browserService;
|
|
24
20
|
constructor(settingsReader: ISettingsReader, browserService: IMcpServerBrowserService);
|
|
25
|
-
execute(
|
|
21
|
+
execute(): Promise<FetchMcpServerToolsResult>;
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=fetch-mcp-server-tools.use-case.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-mcp-server-tools.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fetch-mcp-server-tools.use-case.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,EACZ,MAAM,6DAA6D,CAAC;AAErE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAFd,cAAc,EAAE,eAAe,EAE/B,cAAc,EAAE,wBAAwB;IAGrD,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;CAapD"}
|
package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fetch MCP Server Tools Use Case
|
|
3
3
|
*
|
|
4
|
-
* Retrieves the list of MCP tools
|
|
5
|
-
*
|
|
4
|
+
* Retrieves the list of MCP tools from the configured LiteLLM proxy's
|
|
5
|
+
* REST tools/list endpoint.
|
|
6
6
|
*
|
|
7
7
|
* Business Rules:
|
|
8
8
|
* - Reads proxy URL from settings via ISettingsReader
|
|
9
9
|
* - If proxy not configured, returns empty array
|
|
10
|
-
* - Requires a server name to target a specific MCP server
|
|
11
10
|
* - Delegates to IMcpServerBrowserService for HTTP retrieval
|
|
12
11
|
*/
|
|
13
12
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -30,14 +29,14 @@ let FetchMcpServerToolsUseCase = class FetchMcpServerToolsUseCase {
|
|
|
30
29
|
this.settingsReader = settingsReader;
|
|
31
30
|
this.browserService = browserService;
|
|
32
31
|
}
|
|
33
|
-
async execute(
|
|
32
|
+
async execute() {
|
|
34
33
|
const settings = this.settingsReader.getSettings();
|
|
35
34
|
const proxyUrl = settings?.litellmProxy?.baseUrl;
|
|
36
|
-
if (!proxyUrl
|
|
35
|
+
if (!proxyUrl) {
|
|
37
36
|
return { tools: [] };
|
|
38
37
|
}
|
|
39
38
|
const apiKey = settings.litellmProxy?.apiKey;
|
|
40
|
-
const tools = await this.browserService.fetchTools(proxyUrl,
|
|
39
|
+
const tools = await this.browserService.fetchTools(proxyUrl, apiKey);
|
|
41
40
|
return { tools };
|
|
42
41
|
}
|
|
43
42
|
};
|
|
@@ -45,18 +45,6 @@ declare const McpToolInfoSchema: z.ZodObject<{
|
|
|
45
45
|
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
46
46
|
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
47
47
|
}, z.core.$strip>;
|
|
48
|
-
export declare const McpJsonRpcToolsListResponseSchema: z.ZodObject<{
|
|
49
|
-
jsonrpc: z.ZodOptional<z.ZodString>;
|
|
50
|
-
id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
51
|
-
result: z.ZodObject<{
|
|
52
|
-
tools: z.ZodArray<z.ZodObject<{
|
|
53
|
-
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
54
|
-
title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
55
|
-
description: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<string, string>>;
|
|
56
|
-
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
57
|
-
}, z.core.$strip>>;
|
|
58
|
-
}, z.core.$strip>;
|
|
59
|
-
}, z.core.$strip>;
|
|
60
48
|
export declare const McpToolListResponseSchema: z.ZodObject<{
|
|
61
49
|
tools: z.ZodArray<z.ZodObject<{
|
|
62
50
|
name: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-browser.schema.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;iBAavB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAA+B,CAAC;AAEhE,QAAA,MAAM,iBAAiB;;;;;iBAWrB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server-browser.schema.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;iBAavB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAA+B,CAAC;AAEhE,QAAA,MAAM,iBAAiB;;;;;iBAWrB,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;iBAEpC,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;kBAA6B,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -46,18 +46,8 @@ const McpToolInfoSchema = z.object({
|
|
|
46
46
|
.transform((s) => s.slice(0, 2000)),
|
|
47
47
|
inputSchema: z.record(z.string(), z.unknown()).optional(),
|
|
48
48
|
});
|
|
49
|
-
// MCP JSON-RPC response for tools/list:
|
|
50
|
-
// { "jsonrpc": "2.0", "id": 1, "result": { "tools": [...] } }
|
|
51
|
-
export const McpJsonRpcToolsListResponseSchema = z.object({
|
|
52
|
-
jsonrpc: z.string().optional(),
|
|
53
|
-
id: z.union([z.string(), z.number()]).optional(),
|
|
54
|
-
result: z.object({
|
|
55
|
-
tools: z.array(McpToolInfoSchema),
|
|
56
|
-
}),
|
|
57
|
-
});
|
|
58
|
-
// Some older LiteLLM versions / compat modes may return the wrapped result directly
|
|
59
49
|
export const McpToolListResponseSchema = z.object({
|
|
60
50
|
tools: z.array(McpToolInfoSchema),
|
|
61
51
|
});
|
|
62
|
-
//
|
|
52
|
+
// Fallback: tools/list may return a bare array in some LiteLLM versions
|
|
63
53
|
export const McpToolListFallbackSchema = z.array(McpToolInfoSchema);
|
|
@@ -4,22 +4,14 @@
|
|
|
4
4
|
* Implements IMcpServerBrowserService using Node 22+ native fetch for
|
|
5
5
|
* read-only HTTP retrieval from LiteLLM proxy endpoints:
|
|
6
6
|
* - GET /public/mcp_hub — list accessible MCP servers
|
|
7
|
-
* -
|
|
7
|
+
* - GET /mcp-rest/tools/list — list available MCP tools
|
|
8
8
|
*
|
|
9
9
|
* Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
|
|
10
10
|
* Silent failure to empty arrays on any error.
|
|
11
|
-
*
|
|
12
|
-
* LiteLLM's MCP tool listing is per-server via JSON-RPC, not a global REST
|
|
13
|
-
* endpoint. See https://docs.litellm.ai/docs/mcp for the canonical API shape:
|
|
14
|
-
*
|
|
15
|
-
* POST {proxyBaseUrl}/{serverName}/mcp
|
|
16
|
-
* Content-Type: application/json
|
|
17
|
-
* x-litellm-api-key: Bearer {apiKey}
|
|
18
|
-
* {"jsonrpc": "2.0", "id": 1, "method": "tools/list"}
|
|
19
11
|
*/
|
|
20
12
|
import type { IMcpServerBrowserService, McpServerInfo, McpToolInfo } from '../../../application/ports/output/services/mcp-server-browser.interface.js';
|
|
21
13
|
export declare class McpServerBrowserService implements IMcpServerBrowserService {
|
|
22
14
|
fetchServers(proxyBaseUrl: string, apiKey?: string): Promise<McpServerInfo[]>;
|
|
23
|
-
fetchTools(proxyBaseUrl: string,
|
|
15
|
+
fetchTools(proxyBaseUrl: string, apiKey?: string): Promise<McpToolInfo[]>;
|
|
24
16
|
}
|
|
25
17
|
//# sourceMappingURL=mcp-server-browser.service.d.ts.map
|
|
@@ -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
|
|
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"}
|
|
@@ -4,18 +4,10 @@
|
|
|
4
4
|
* Implements IMcpServerBrowserService using Node 22+ native fetch for
|
|
5
5
|
* read-only HTTP retrieval from LiteLLM proxy endpoints:
|
|
6
6
|
* - GET /public/mcp_hub — list accessible MCP servers
|
|
7
|
-
* -
|
|
7
|
+
* - GET /mcp-rest/tools/list — list available MCP tools
|
|
8
8
|
*
|
|
9
9
|
* Pattern: AbortController timeout, redirect rejection, size limit, Zod validation.
|
|
10
10
|
* Silent failure to empty arrays on any error.
|
|
11
|
-
*
|
|
12
|
-
* LiteLLM's MCP tool listing is per-server via JSON-RPC, not a global REST
|
|
13
|
-
* endpoint. See https://docs.litellm.ai/docs/mcp for the canonical API shape:
|
|
14
|
-
*
|
|
15
|
-
* POST {proxyBaseUrl}/{serverName}/mcp
|
|
16
|
-
* Content-Type: application/json
|
|
17
|
-
* x-litellm-api-key: Bearer {apiKey}
|
|
18
|
-
* {"jsonrpc": "2.0", "id": 1, "method": "tools/list"}
|
|
19
11
|
*/
|
|
20
12
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
21
13
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -24,10 +16,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
24
16
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
25
17
|
};
|
|
26
18
|
import { injectable } from 'tsyringe';
|
|
27
|
-
import { McpServerListSchema,
|
|
19
|
+
import { McpServerListSchema, McpToolListResponseSchema, McpToolListFallbackSchema, } from './mcp-server-browser.schema.js';
|
|
28
20
|
const FETCH_TIMEOUT_MS = 10_000;
|
|
29
21
|
const MAX_RESPONSE_SIZE = 5_000_000;
|
|
30
|
-
const SAFE_SERVER_NAME_REGEX = /^[a-zA-Z0-9_-]{1,100}$/;
|
|
31
22
|
let McpServerBrowserService = class McpServerBrowserService {
|
|
32
23
|
async fetchServers(proxyBaseUrl, apiKey) {
|
|
33
24
|
try {
|
|
@@ -35,8 +26,8 @@ let McpServerBrowserService = class McpServerBrowserService {
|
|
|
35
26
|
if (!url)
|
|
36
27
|
return [];
|
|
37
28
|
const endpoint = `${url}/public/mcp_hub`;
|
|
38
|
-
const headers =
|
|
39
|
-
const json = await fetchJson(endpoint,
|
|
29
|
+
const headers = buildHeaders(apiKey);
|
|
30
|
+
const json = await fetchJson(endpoint, headers);
|
|
40
31
|
if (json === null)
|
|
41
32
|
return [];
|
|
42
33
|
const parsed = McpServerListSchema.safeParse(json);
|
|
@@ -48,34 +39,21 @@ let McpServerBrowserService = class McpServerBrowserService {
|
|
|
48
39
|
return [];
|
|
49
40
|
}
|
|
50
41
|
}
|
|
51
|
-
async fetchTools(proxyBaseUrl,
|
|
42
|
+
async fetchTools(proxyBaseUrl, apiKey) {
|
|
52
43
|
try {
|
|
53
44
|
const url = parseAndValidateUrl(proxyBaseUrl);
|
|
54
45
|
if (!url)
|
|
55
46
|
return [];
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return [];
|
|
60
|
-
const endpoint = `${url}/${serverName}/mcp`;
|
|
61
|
-
const headers = buildPostHeaders(apiKey);
|
|
62
|
-
const body = JSON.stringify({
|
|
63
|
-
jsonrpc: '2.0',
|
|
64
|
-
id: 1,
|
|
65
|
-
method: 'tools/list',
|
|
66
|
-
});
|
|
67
|
-
const json = await fetchJson(endpoint, { method: 'POST', headers, body });
|
|
47
|
+
const endpoint = `${url}/mcp-rest/tools/list`;
|
|
48
|
+
const headers = buildHeaders(apiKey);
|
|
49
|
+
const json = await fetchJson(endpoint, headers);
|
|
68
50
|
if (json === null)
|
|
69
51
|
return [];
|
|
70
|
-
//
|
|
71
|
-
const rpcParsed = McpJsonRpcToolsListResponseSchema.safeParse(json);
|
|
72
|
-
if (rpcParsed.success)
|
|
73
|
-
return rpcParsed.data.result.tools;
|
|
74
|
-
// Fallback: some versions may return { tools: [...] } directly
|
|
52
|
+
// Try wrapped format first: { tools: [...] }
|
|
75
53
|
const wrapped = McpToolListResponseSchema.safeParse(json);
|
|
76
54
|
if (wrapped.success)
|
|
77
55
|
return wrapped.data.tools;
|
|
78
|
-
// Fallback: bare array
|
|
56
|
+
// Fallback: bare array [...]
|
|
79
57
|
const bare = McpToolListFallbackSchema.safeParse(json);
|
|
80
58
|
if (bare.success)
|
|
81
59
|
return bare.data;
|
|
@@ -101,36 +79,21 @@ function parseAndValidateUrl(proxyBaseUrl) {
|
|
|
101
79
|
return null;
|
|
102
80
|
}
|
|
103
81
|
}
|
|
104
|
-
function
|
|
82
|
+
function buildHeaders(apiKey) {
|
|
105
83
|
const headers = {};
|
|
106
84
|
if (apiKey) {
|
|
107
85
|
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
108
86
|
}
|
|
109
87
|
return headers;
|
|
110
88
|
}
|
|
111
|
-
function
|
|
112
|
-
// LiteLLM's MCP JSON-RPC endpoint expects `x-litellm-api-key: Bearer <key>`,
|
|
113
|
-
// not a standard `Authorization` header. See docs.litellm.ai/docs/mcp
|
|
114
|
-
// "Forwarding Custom Headers to MCP Servers" section.
|
|
115
|
-
const headers = {
|
|
116
|
-
'Content-Type': 'application/json',
|
|
117
|
-
Accept: 'application/json, text/event-stream',
|
|
118
|
-
};
|
|
119
|
-
if (apiKey) {
|
|
120
|
-
headers['x-litellm-api-key'] = `Bearer ${apiKey}`;
|
|
121
|
-
}
|
|
122
|
-
return headers;
|
|
123
|
-
}
|
|
124
|
-
async function fetchJson(endpoint, options) {
|
|
89
|
+
async function fetchJson(endpoint, headers) {
|
|
125
90
|
const controller = new AbortController();
|
|
126
91
|
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
127
92
|
try {
|
|
128
93
|
const res = await fetch(endpoint, {
|
|
129
|
-
method: options.method,
|
|
130
94
|
signal: controller.signal,
|
|
131
95
|
redirect: 'error',
|
|
132
|
-
headers
|
|
133
|
-
body: options.body,
|
|
96
|
+
headers,
|
|
134
97
|
});
|
|
135
98
|
if (!res.ok)
|
|
136
99
|
return null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
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(
|
|
2
|
+
export declare function fetchMcpServerToolsAction(): Promise<FetchMcpServerToolsResult & {
|
|
3
3
|
error?: string;
|
|
4
4
|
}>;
|
|
5
5
|
//# sourceMappingURL=fetch-mcp-server-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,9 +1,9 @@
|
|
|
1
1
|
'use server';
|
|
2
2
|
import { resolve } from '../../lib/server-container.js';
|
|
3
|
-
export async function fetchMcpServerToolsAction(
|
|
3
|
+
export async function fetchMcpServerToolsAction() {
|
|
4
4
|
try {
|
|
5
5
|
const useCase = resolve('FetchMcpServerToolsUseCase');
|
|
6
|
-
return await useCase.execute(
|
|
6
|
+
return await useCase.execute();
|
|
7
7
|
}
|
|
8
8
|
catch {
|
|
9
9
|
return { tools: [], error: 'Failed to fetch MCP server tools' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/mcp-servers/page.tsx"],"names":[],"mappings":"AAMA,wBAA8B,cAAc,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/mcp-servers/page.tsx"],"names":[],"mappings":"AAMA,wBAA8B,cAAc,qDAc3C"}
|
|
@@ -8,15 +8,13 @@ export default async function McpServersPage() {
|
|
|
8
8
|
if (!flags.mcpServers)
|
|
9
9
|
notFound();
|
|
10
10
|
let proxyConfigured = false;
|
|
11
|
-
let proxyBaseUrl = '';
|
|
12
11
|
try {
|
|
13
12
|
const useCase = resolve('LoadSettingsUseCase');
|
|
14
13
|
const settings = await useCase.execute();
|
|
15
14
|
proxyConfigured = !!settings.litellmProxy?.baseUrl;
|
|
16
|
-
proxyBaseUrl = settings.litellmProxy?.baseUrl ?? '';
|
|
17
15
|
}
|
|
18
16
|
catch {
|
|
19
17
|
// Settings not available
|
|
20
18
|
}
|
|
21
|
-
return _jsx(McpServersPageClient, { proxyConfigured: proxyConfigured
|
|
19
|
+
return _jsx(McpServersPageClient, { proxyConfigured: proxyConfigured });
|
|
22
20
|
}
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { McpServerInfo } from '../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.js';
|
|
2
2
|
interface McpServerDetailDrawerProps {
|
|
3
3
|
server: McpServerInfo | null;
|
|
4
|
-
|
|
4
|
+
serverNames: string[];
|
|
5
5
|
open: boolean;
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
}
|
|
8
|
-
export declare function McpServerDetailDrawer({ server,
|
|
8
|
+
export declare function McpServerDetailDrawer({ server, serverNames, open, onClose, }: McpServerDetailDrawerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=mcp-server-detail-drawer.d.ts.map
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js
CHANGED
|
@@ -7,7 +7,6 @@ import { DrawerTitle, DrawerDescription } from '../../ui/drawer.js';
|
|
|
7
7
|
import { Separator } from '../../ui/separator.js';
|
|
8
8
|
import { Badge } from '../../ui/badge.js';
|
|
9
9
|
import { McpToolList } from './mcp-tool-list.js';
|
|
10
|
-
import { McpConnectInstructions } from './mcp-connect-instructions.js';
|
|
11
10
|
import { fetchMcpServerToolsAction } from '../../../app/actions/fetch-mcp-server-tools.js';
|
|
12
11
|
function isValidDisplayUrl(url) {
|
|
13
12
|
if (!url)
|
|
@@ -20,21 +19,19 @@ function isValidDisplayUrl(url) {
|
|
|
20
19
|
return false;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
export function McpServerDetailDrawer({ server,
|
|
22
|
+
export function McpServerDetailDrawer({ server, serverNames, open, onClose, }) {
|
|
24
23
|
const { t } = useTranslation('web');
|
|
25
24
|
const [tools, setTools] = useState([]);
|
|
26
25
|
const [loadingTools, setLoadingTools] = useState(false);
|
|
27
26
|
const [toolError, setToolError] = useState(null);
|
|
28
|
-
const
|
|
29
|
-
const loadTools = useCallback(async (serverName) => {
|
|
27
|
+
const loadTools = useCallback(async () => {
|
|
30
28
|
setLoadingTools(true);
|
|
31
29
|
setToolError(null);
|
|
32
30
|
try {
|
|
33
|
-
const result = await fetchMcpServerToolsAction(
|
|
31
|
+
const result = await fetchMcpServerToolsAction();
|
|
34
32
|
setTools(result.tools);
|
|
35
33
|
if (result.error)
|
|
36
34
|
setToolError(result.error);
|
|
37
|
-
setLoadedServerName(serverName);
|
|
38
35
|
}
|
|
39
36
|
catch {
|
|
40
37
|
setToolError('Failed to load tools');
|
|
@@ -44,15 +41,12 @@ export function McpServerDetailDrawer({ server, proxyBaseUrl, open, onClose, })
|
|
|
44
41
|
}
|
|
45
42
|
}, []);
|
|
46
43
|
useEffect(() => {
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return;
|
|
52
|
-
loadTools(server.server_name);
|
|
53
|
-
}, [open, server, loadedServerName, loadTools]);
|
|
44
|
+
if (open && server && tools.length === 0) {
|
|
45
|
+
loadTools();
|
|
46
|
+
}
|
|
47
|
+
}, [open, server, tools.length, loadTools]);
|
|
54
48
|
if (!server)
|
|
55
49
|
return null;
|
|
56
50
|
const description = server.mcp_info?.description ?? '';
|
|
57
|
-
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,
|
|
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 }))] }));
|
|
58
52
|
}
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
interface McpServersPageClientProps {
|
|
2
2
|
proxyConfigured: boolean;
|
|
3
|
-
proxyBaseUrl: string;
|
|
4
3
|
}
|
|
5
|
-
export declare function McpServersPageClient({ proxyConfigured
|
|
4
|
+
export declare function McpServersPageClient({ proxyConfigured }: McpServersPageClientProps): import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export {};
|
|
7
6
|
//# sourceMappingURL=mcp-servers-page-client.d.ts.map
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js
CHANGED
|
@@ -10,7 +10,7 @@ import { McpServerCard } from './mcp-server-card.js';
|
|
|
10
10
|
import { McpServerDetailDrawer } from './mcp-server-detail-drawer.js';
|
|
11
11
|
import { fetchMcpServersAction } from '../../../app/actions/fetch-mcp-servers.js';
|
|
12
12
|
const TRANSPORT_FILTERS = ['all', 'http', 'sse', 'stdio'];
|
|
13
|
-
export function McpServersPageClient({ proxyConfigured
|
|
13
|
+
export function McpServersPageClient({ proxyConfigured }) {
|
|
14
14
|
const { t } = useTranslation('web');
|
|
15
15
|
const [searchQuery, setSearchQuery] = useState('');
|
|
16
16
|
const [transportFilter, setTransportFilter] = useState('all');
|
|
@@ -36,6 +36,7 @@ export function McpServersPageClient({ proxyConfigured, proxyBaseUrl }) {
|
|
|
36
36
|
setLoading(false);
|
|
37
37
|
});
|
|
38
38
|
}, [proxyConfigured, t]);
|
|
39
|
+
const serverNames = useMemo(() => servers.map((s) => s.server_name), [servers]);
|
|
39
40
|
const filtered = useMemo(() => {
|
|
40
41
|
return servers.filter((server) => {
|
|
41
42
|
const query = searchQuery.toLowerCase();
|
|
@@ -54,5 +55,5 @@ export function McpServersPageClient({ proxyConfigured, proxyBaseUrl }) {
|
|
|
54
55
|
}
|
|
55
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'
|
|
56
57
|
? t('mcpServers.filter.all')
|
|
57
|
-
: 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,
|
|
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) })] }));
|
|
58
59
|
}
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js
CHANGED
|
@@ -5,8 +5,8 @@ const meta = {
|
|
|
5
5
|
};
|
|
6
6
|
export default meta;
|
|
7
7
|
export const Default = {
|
|
8
|
-
args: { proxyConfigured: true
|
|
8
|
+
args: { proxyConfigured: true },
|
|
9
9
|
};
|
|
10
10
|
export const NoProxy = {
|
|
11
|
-
args: { proxyConfigured: false
|
|
11
|
+
args: { proxyConfigured: false },
|
|
12
12
|
};
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
import type { McpToolInfo } from '../../../../../../packages/core/src/application/ports/output/services/mcp-server-browser.interface.js';
|
|
2
2
|
interface McpToolListProps {
|
|
3
3
|
tools: McpToolInfo[];
|
|
4
|
-
|
|
5
|
-
* The server name that these tools belong to. Used to strip the
|
|
6
|
-
* `{serverName}-` prefix from tool names for nicer display.
|
|
7
|
-
*/
|
|
8
|
-
serverName: string;
|
|
4
|
+
serverNames: string[];
|
|
9
5
|
}
|
|
10
|
-
interface
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
interface GroupedTools {
|
|
7
|
+
serverName: string;
|
|
8
|
+
tools: {
|
|
9
|
+
displayName: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
}[];
|
|
14
12
|
}
|
|
15
13
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* LiteLLM sometimes prefixes tool names with the server alias (e.g.,
|
|
19
|
-
* `github_mcp-list_issues`). When we're displaying tools for a single
|
|
20
|
-
* known server, the prefix is redundant — strip it for cleaner UI.
|
|
14
|
+
* Groups tools by server name prefix.
|
|
21
15
|
*
|
|
22
|
-
*
|
|
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.
|
|
23
19
|
*/
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function McpToolList({ tools,
|
|
20
|
+
export declare function groupToolsByServer(tools: McpToolInfo[], serverNames: string[]): GroupedTools[];
|
|
21
|
+
export declare function McpToolList({ tools, serverNames }: McpToolListProps): import("react/jsx-runtime").JSX.Element;
|
|
26
22
|
export {};
|
|
27
23
|
//# sourceMappingURL=mcp-tool-list.d.ts.map
|
|
@@ -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
|
|
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"}
|