@shipit-ai/cli 1.172.0-pr16.b31ecd3 → 1.173.0-pr17.286f21f
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/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts +1 -1
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +10 -0
- 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 +19 -3
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.js +1 -1
- 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 +16 -5
- 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 +13 -4
- 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 +2 -2
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.js +32 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/web.json +2 -1
- 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 +2 -2
- package/web/.next/required-server-files.json +2 -2
- 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 +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -1
- 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/_01sesw0._.js +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0ig8swf._.js → _02m0xnc._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0ig8swf._.js.map → _02m0xnc._.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 +1 -1
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js +1 -1
- 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/_0xeb68s._.js +3 -0
- package/web/.next/server/chunks/ssr/{_04z1jg3._.js.map → _0xeb68s._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_0-z2xjv._.js → _0y7~q3z._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0-z2xjv._.js.map → _0y7~q3z._.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/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/{14e8.v2aj~k.c.js → 0-4nqflupymp~.js} +1 -1
- package/web/.next/static/chunks/04beh2pn2wh6s.js +1 -0
- package/web/.next/static/chunks/{0qjlmwu-skciu.js → 064mj~2uat.tj.js} +1 -1
- package/web/.next/static/chunks/{0bqd0fy0w5e4k.js → 0_7fl3r_-4kdw.js} +1 -1
- package/web/.next/static/chunks/{0f4oy2xirxwmj.js → 0b6or2dp6k56l.js} +1 -1
- package/web/.next/static/chunks/{0g-.voyjeec~b.js → 0bp-tvpt-xg7a.js} +3 -3
- package/web/.next/static/chunks/{0hxu8.xyx0z4-.js → 0bqgo0dsz-c.1.js} +1 -1
- package/web/.next/static/chunks/{02ce237xcav6s.js → 0ipfq1-rv2ix~.js} +1 -1
- package/web/.next/static/chunks/{0v1l16yu5yi0-.js → 0k58y--0y8pw5.js} +1 -1
- package/web/.next/static/chunks/{0~~gsf7.gbljc.js → 0le~km314b.fa.js} +1 -1
- package/web/.next/static/chunks/0snp9rjsftzvd.js +1 -0
- package/web/.next/static/chunks/{0tmm5-1w.tzfa.js → 0xh3cljc6er3~.js} +1 -1
- package/web/.next/static/chunks/{0b1d~7i5gfw1-.js → 0xqs42epz00--.js} +1 -1
- package/web/.next/static/chunks/{0m0h4rzeoumvg.js → 154p_w6872ff6.js} +1 -1
- package/web/.next/static/chunks/{0~64izks_7xas.js → 15p0buuq90uko.js} +1 -1
- package/web/.next/server/chunks/ssr/_04z1jg3._.js +0 -3
- package/web/.next/static/chunks/13nrt40z9yg93.js +0 -1
- package/web/.next/static/chunks/14qne_94ozzr5.js +0 -1
- /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → SE2oN139b-bDDhUK4nhB5}/_buildManifest.js +0 -0
- /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → SE2oN139b-bDDhUK4nhB5}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{-6CqN67a8qSHOn097fc6D → SE2oN139b-bDDhUK4nhB5}/_ssgManifest.js +0 -0
package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Business Rules:
|
|
8
8
|
* - Reads proxy URL from settings via ISettingsReader
|
|
9
|
-
* - If proxy not configured
|
|
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';
|
package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Business Rules:
|
|
8
8
|
* - Reads proxy URL from settings via ISettingsReader
|
|
9
|
-
* - If proxy not configured
|
|
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":"web-tokens.module.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/di/modules/web-tokens.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"web-tokens.module.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/di/modules/web-tokens.module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAmEpD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,IAAI,CA2I5E"}
|
|
@@ -44,6 +44,9 @@ import { InstallPluginUseCase } from '../../../application/use-cases/plugins/ins
|
|
|
44
44
|
import { UninstallPluginUseCase } from '../../../application/use-cases/plugins/uninstall-plugin.use-case.js';
|
|
45
45
|
import { TogglePluginUseCase } from '../../../application/use-cases/plugins/toggle-plugin.use-case.js';
|
|
46
46
|
import { AddMarketplaceUseCase } from '../../../application/use-cases/plugins/add-marketplace.use-case.js';
|
|
47
|
+
// MCP server browser use cases
|
|
48
|
+
import { FetchMcpServersUseCase } from '../../../application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js';
|
|
49
|
+
import { FetchMcpServerToolsUseCase } from '../../../application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js';
|
|
47
50
|
// Upgrade use case
|
|
48
51
|
import { UpgradeCliUseCase } from '../../../application/use-cases/upgrade/upgrade-cli.use-case.js';
|
|
49
52
|
// Interactive session use cases
|
|
@@ -181,4 +184,11 @@ export function registerWebTokensModule(container) {
|
|
|
181
184
|
container.register('AddMarketplaceUseCase', {
|
|
182
185
|
useFactory: (c) => c.resolve(AddMarketplaceUseCase),
|
|
183
186
|
});
|
|
187
|
+
// MCP server browser
|
|
188
|
+
container.register('FetchMcpServersUseCase', {
|
|
189
|
+
useFactory: (c) => c.resolve(FetchMcpServersUseCase),
|
|
190
|
+
});
|
|
191
|
+
container.register('FetchMcpServerToolsUseCase', {
|
|
192
|
+
useFactory: (c) => c.resolve(FetchMcpServerToolsUseCase),
|
|
193
|
+
});
|
|
184
194
|
}
|
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
103
|
+
try {
|
|
104
|
+
return JSON.parse(text);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
93
109
|
}
|
|
94
110
|
finally {
|
|
95
111
|
clearTimeout(timeout);
|
|
@@ -10,7 +10,7 @@ const TRANSPORT_ICONS = {
|
|
|
10
10
|
stdio: Terminal,
|
|
11
11
|
};
|
|
12
12
|
export function McpServerCard({ server, onSelect }) {
|
|
13
|
-
const { t } = useTranslation();
|
|
13
|
+
const { t } = useTranslation('web');
|
|
14
14
|
const TransportIcon = TRANSPORT_ICONS[server.transport] ?? Server;
|
|
15
15
|
const description = server.mcp_info?.description ?? '';
|
|
16
16
|
return (_jsxs(Card, { className: "cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600", role: "button", tabIndex: 0, onClick: () => onSelect(server), onKeyDown: (e) => {
|
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":"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,
|
|
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
|
@@ -20,14 +20,25 @@ function isValidDisplayUrl(url) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
export function McpServerDetailDrawer({ server, serverNames, open, onClose, }) {
|
|
23
|
-
const { t } = useTranslation();
|
|
23
|
+
const { t } = useTranslation('web');
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
}
|
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;CAC1B;AAID,wBAAgB,oBAAoB,CAAC,EAAE,eAAe,EAAE,EAAE,yBAAyB,
|
|
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
|
@@ -11,22 +11,31 @@ 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
13
|
export function McpServersPageClient({ proxyConfigured }) {
|
|
14
|
-
const { t } = useTranslation();
|
|
14
|
+
const { t } = useTranslation('web');
|
|
15
15
|
const [searchQuery, setSearchQuery] = useState('');
|
|
16
16
|
const [transportFilter, setTransportFilter] = useState('all');
|
|
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()
|
|
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,
|
|
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"}
|
|
@@ -39,10 +39,10 @@ export function groupToolsByServer(tools, serverNames) {
|
|
|
39
39
|
}));
|
|
40
40
|
}
|
|
41
41
|
export function McpToolList({ tools, serverNames }) {
|
|
42
|
-
const { t } = useTranslation();
|
|
42
|
+
const { t } = useTranslation('web');
|
|
43
43
|
const grouped = useMemo(() => groupToolsByServer(tools, serverNames), [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
|
package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.stories.d.ts.map
ADDED
|
@@ -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
|
+
};
|