@shipit-ai/cli 1.172.0 → 1.173.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/json-schema/FeatureFlags.yaml +5 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts +38 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/mcp-server-browser.interface.js +12 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts +23 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-server-tools.use-case.js +49 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts +23 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/mcp-servers/fetch-mcp-servers.use-case.js +49 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +4 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/services.module.js +3 -0
- package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +6 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts +11 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-add-mcp-servers-flag.js +16 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -2
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/index.js +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts +65 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.schema.js +53 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/mcp-server-browser/mcp-server-browser.service.js +113 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-server-tools.js +11 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts +5 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/fetch-mcp-servers.js +11 -0
- package/dist/src/presentation/web/app/mcp-servers/page.d.ts +2 -0
- package/dist/src/presentation/web/app/mcp-servers/page.d.ts.map +1 -0
- package/dist/src/presentation/web/app/mcp-servers/page.js +20 -0
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.stories.js +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts +8 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.js +22 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts +15 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-card.stories.js +56 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts +10 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +52 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.stories.js +42 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts +6 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.js +59 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts +11 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.stories.js +12 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts +23 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-tool-list.js +48 -0
- 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/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +7 -0
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +2 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
- package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
- package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
- package/dist/src/presentation/web/lib/feature-flags.js +6 -0
- package/dist/translations/ar/web.json +50 -12
- package/dist/translations/de/web.json +70 -18
- package/dist/translations/en/web.json +51 -13
- package/dist/translations/es/web.json +51 -13
- package/dist/translations/fr/web.json +51 -13
- package/dist/translations/he/web.json +51 -13
- package/dist/translations/pt/web.json +51 -13
- package/dist/translations/ru/web.json +51 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +1 -0
- 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/routes-manifest.json +6 -0
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/app-paths-manifest.json +3 -0
- package/web/.next/server/app/mcp-servers/page/build-manifest.json +18 -0
- package/web/.next/server/app/mcp-servers/page/next-font-manifest.json +10 -0
- package/web/.next/server/app/mcp-servers/page/react-loadable-manifest.json +8 -0
- package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +161 -0
- package/web/.next/server/app/mcp-servers/page.js +17 -0
- package/web/.next/server/app/mcp-servers/page.js.map +5 -0
- package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -0
- package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/plugins/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/app-paths-manifest.json +1 -0
- package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +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/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js +4 -0
- package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0-p.z5-.js.map +1 -0
- package/web/.next/server/chunks/ssr/11es_next_dist_esm_build_templates_app-page_0un-3~2.js +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]__11-~i9u._.js +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 +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0-09vq7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0tcccbb._.js → _0.rsra~._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +1 -0
- 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/{_0pqw.55._.js → _052jfzq._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0pqw.55._.js.map → _052jfzq._.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 +3 -0
- package/web/.next/server/chunks/ssr/{_10joy2y._.js.map → _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/{_13o1d1i._.js → _0i0_q..._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_13o1d1i._.js.map → _0i0_q..._.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 +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/_0u3d8.n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0vqmej8._.js +3 -0
- package/web/.next/server/chunks/ssr/_0vqmej8._.js.map +1 -0
- 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/{_0ik5uly._.js → _0wl~vw0._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0ik5uly._.js.map → _0wl~vw0._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0ygafoy._.js +1 -1
- package/web/.next/server/chunks/ssr/_0ygafoy._.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/{_083k45~._.js → _1031n_-._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_083k45~._.js.map → _1031n_-._.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/{_05fk0a4._.js → _12y_u2z._.js} +2 -2
- package/web/.next/server/chunks/ssr/_12y_u2z._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -0
- 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/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +3 -0
- 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 +145 -55
- package/web/.next/static/chunks/0.zpc6-geo2pp.js +1 -0
- package/web/.next/static/chunks/00h433i5-1v_-.css +1 -0
- package/web/.next/static/chunks/04~wdwkqgr57x.js +1 -0
- package/web/.next/static/chunks/08tp-_of5~bcc.js +1 -0
- package/web/.next/static/chunks/{0rm13o3bvc9o..js → 09ix490-00s4x.js} +1 -1
- package/web/.next/static/chunks/{100y4~jpwu8~t.js → 0ferlvybqru33.js} +3 -3
- package/web/.next/static/chunks/{0rd5nu5ru3gje.js → 0ghc-76~~v-cj.js} +1 -1
- package/web/.next/static/chunks/0hkfexnwbsfyg.js +1 -0
- package/web/.next/static/chunks/{0m0hb2m1lgy.r.js → 0j-doxnxl43yu.js} +1 -1
- package/web/.next/static/chunks/{0b2pi58fg3lt3.js → 0pm3xcdn669n~.js} +1 -1
- package/web/.next/static/chunks/{012cnd7koqv6d.js → 0sgbbtfp4hspl.js} +2 -2
- package/web/.next/static/chunks/{0ddwj6.~yj.u5.js → 0sliw7pn2d_57.js} +1 -1
- package/web/.next/static/chunks/0x_xky1fcolbm.js +1 -0
- package/web/.next/static/chunks/{16678zkd7o7-z.js → 0xmqx8qtb0njk.js} +1 -1
- package/web/.next/static/chunks/{0prk~fhfyg~yg.js → 0yz729_n37__3.js} +1 -1
- package/web/.next/static/chunks/{0aworyfo5xz3f.js → 0y~ts1~5mpg5h.js} +1 -1
- package/web/.next/static/chunks/0zy_h1essdthk.js +1 -0
- package/web/.next/static/chunks/{10rtagfoabp3b.js → 10j-adknfho63.js} +1 -1
- package/web/.next/static/chunks/{07e~pkh4ikdtq.js → 11e3u3wkmfedd.js} +1 -1
- package/web/.next/static/chunks/{0q.xmdro9u05g.js → 156lo29queyhm.js} +1 -1
- package/web/.next/static/chunks/15izkiwfc5ym~.js +5 -0
- package/web/.next/static/chunks/{0o4m0k3642219.js → 15lkkh2eg.w0h.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dec29w._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_05fk0a4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0i~-084._.js +0 -3
- package/web/.next/server/chunks/ssr/_0i~-084._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_10joy2y._.js +0 -3
- package/web/.next/static/chunks/02e5.-kk~ag_i.js +0 -1
- package/web/.next/static/chunks/0aom-74j.wtkt.js +0 -1
- package/web/.next/static/chunks/0lc0x8kcu46ae.js +0 -1
- package/web/.next/static/chunks/0ug478hm-8bog.js +0 -5
- package/web/.next/static/chunks/0uz.~ob1qtjhj.js +0 -1
- package/web/.next/static/chunks/0v7r7y~3e~oo6.css +0 -1
- package/web/.next/static/chunks/0vb84wrbin-ef.js +0 -1
- /package/web/.next/static/{hWgOeXuQ6p-VoJvFXhk5g → 8igTmoo1g4DAuDf2Tup6h}/_buildManifest.js +0 -0
- /package/web/.next/static/{hWgOeXuQ6p-VoJvFXhk5g → 8igTmoo1g4DAuDf2Tup6h}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{hWgOeXuQ6p-VoJvFXhk5g → 8igTmoo1g4DAuDf2Tup6h}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[8685,a=>{"use strict";let b=(0,a.i(97624).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],8685)},2,a=>{"use strict";let b=(0,a.i(97624).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],2)},78454,a=>{"use strict";a.i(24255),a.s([])},63466,a=>{"use strict";var b=a.i(47068);a.s(["Server",()=>b.default])},38702,16223,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["EmptyState",0,function({icon:a,title:d,description:e,action:f,className:g,...h}){return(0,b.jsxs)("div",{className:(0,c.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",g),...h,children:[a?(0,b.jsx)("div",{className:"text-muted-foreground",children:a}):null,(0,b.jsx)("h3",{className:"text-lg font-semibold",children:d}),e?(0,b.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:e}):null,f?(0,b.jsx)("div",{className:"mt-2",children:f}):null]})}],16223),a.s([],38702)},84117,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(85536);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("bg-card text-card-foreground editorial-shadow rounded-xl border",a),...c}));e.displayName="Card";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1.5 p-6",a),...c}));f.displayName="CardHeader";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("leading-none font-semibold tracking-tight",a),...c}));g.displayName="CardTitle";let h=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-muted-foreground text-sm",a),...c}));h.displayName="CardDescription";let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("p-6 pt-0",a),...c}));i.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center p-6 pt-0",a),...c})).displayName="CardFooter",a.s(["Card",0,e,"CardContent",0,i,"CardDescription",0,h,"CardHeader",0,f,"CardTitle",0,g])},90894,a=>{"use strict";var b=a.i(3403);a.s(["AlertCircle",()=>b.default])},6790,a=>{"use strict";var b=a.i(53083),c=a.i(11321);a.i(98617);var d=a.i(50040),e=a.i(90894),f=a.i(50950),g=a.i(63466),h=a.i(90920),i=a.i(58339);a.i(38702);var j=a.i(16223),k=a.i(84117);let l=(0,a.i(97624).default)("wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);var m=a.i(8685);let n={http:g.Server,sse:l,stdio:m.Terminal};function o({server:a,onSelect:c}){let{t:e}=(0,d.useTranslation)(),f=n[a.transport]??g.Server,h=a.mcp_info?.description??"";return(0,b.jsxs)(k.Card,{className:"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600",role:"button",tabIndex:0,onClick:()=>c(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),c(a))},children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(f,{className:"text-muted-foreground h-4 w-4 shrink-0"}),(0,b.jsx)("h3",{className:"text-sm font-semibold",children:a.name})]}),(0,b.jsx)(i.Badge,{variant:"outline",className:"shrink-0 text-xs",children:e(`mcpServers.transport.${a.transport}`,a.transport.toUpperCase())})]}),h?(0,b.jsx)("p",{className:"text-muted-foreground mt-2 line-clamp-2 text-xs",children:h}):null,(0,b.jsx)("div",{className:"mt-3 flex items-center gap-2",children:a.auth_type&&"none"!==a.auth_type?(0,b.jsx)(i.Badge,{variant:"secondary",className:"text-xs",children:e(`mcpServers.authType.${a.auth_type}`,a.auth_type)}):null})]})}a.i(78454);var p=a.i(24255),q=a.i(2824),r=a.i(13126);function s({tools:a,serverNames:e}){let{t:f}=(0,d.useTranslation)(),g=(0,c.useMemo)(()=>(function(a,b){let c=new Map;for(let d of a){let a=!1;for(let e of b){let b=`${e}-`;if(d.name.startsWith(b)){let f=d.name.slice(b.length);c.has(e)||c.set(e,[]),c.get(e).push({displayName:f,description:d.description}),a=!0;break}}a||(c.has("other")||c.set("other",[]),c.get("other").push({displayName:d.name,description:d.description}))}return Array.from(c.entries()).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({serverName:a,tools:b.sort((a,b)=>a.displayName.localeCompare(b.displayName))}))})(a,e),[a,e]);return 0===a.length?(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:f("mcpServers.tools.noTools")}):(0,b.jsx)("div",{className:"space-y-4",children:g.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase",children:"other"===a.serverName?f("mcpServers.tools.other"):a.serverName}),(0,b.jsx)("div",{className:"space-y-2",children:a.tools.map(c=>(0,b.jsxs)("div",{className:"rounded-md border p-2",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)(i.Badge,{variant:"outline",className:"font-mono text-xs",children:c.displayName})}),c.description?(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-xs",children:c.description}):null]},`${a.serverName}-${c.displayName}`))})]},a.serverName))})}var t=a.i(6120);let u=(0,t.createServerReference)("000b119857dc5404d838bc991cc9be5277f2998823",t.callServer,void 0,t.findSourceMapURL,"fetchMcpServerToolsAction");function v({server:a,serverNames:e,open:f,onClose:g}){let{t:h}=(0,d.useTranslation)(),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(null),t=(0,c.useCallback)(async()=>{m(!0),o(null);try{let a=await u();k(a.tools),a.error&&o(a.error)}catch{o("Failed to load tools")}finally{m(!1)}},[]);if((0,c.useEffect)(()=>{f&&a&&0===j.length&&t()},[f,a,j.length,t]),!a)return null;let w=a.mcp_info?.description??"";return(0,b.jsxs)(p.BaseDrawer,{open:f,onClose:g,children:[(0,b.jsx)(q.DrawerTitle,{children:a.name}),w?(0,b.jsx)(q.DrawerDescription,{children:w}):null,(0,b.jsx)(r.Separator,{className:"my-4"}),(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.serverName")}),(0,b.jsx)("span",{className:"font-mono text-xs",children:a.server_name})]}),!function(a){if(!a)return!1;try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}}(a.url)?null:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.url")}),(0,b.jsx)("span",{className:"max-w-[200px] truncate font-mono text-xs",children:a.url})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.transport")}),(0,b.jsx)(i.Badge,{variant:"outline",className:"text-xs",children:h(`mcpServers.transport.${a.transport}`,a.transport.toUpperCase())})]}),a.auth_type&&"none"!==a.auth_type?(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:h("mcpServers.detail.authType")}),(0,b.jsx)(i.Badge,{variant:"secondary",className:"text-xs",children:h(`mcpServers.authType.${a.auth_type}`,a.auth_type)})]}):null]}),(0,b.jsx)(r.Separator,{className:"my-4"}),(0,b.jsx)("h3",{className:"mb-3 text-sm font-semibold",children:h("mcpServers.tools.title")}),l?(0,b.jsxs)("p",{className:"text-muted-foreground text-sm",children:[h("accessibility.loading"),"..."]}):n?(0,b.jsx)("p",{className:"text-destructive text-sm",children:n}):(0,b.jsx)(s,{tools:j,serverNames:e})]})}let w=(0,t.createServerReference)("00a6d7d3d6e6e2ef2500401ead3be9498955935c25",t.callServer,void 0,t.findSourceMapURL,"fetchMcpServersAction"),x=["all","http","sse","stdio"];a.s(["McpServersPageClient",0,function({proxyConfigured:a}){let{t:k}=(0,d.useTranslation)(),[l,m]=(0,c.useState)(""),[n,p]=(0,c.useState)("all"),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)([]),[u,y]=(0,c.useState)(!0),[z,A]=(0,c.useState)(null);(0,c.useEffect)(()=>{a?w().then(a=>{t(a.servers),a.error&&A(a.error)}).catch(()=>{A(k("mcpServers.fetchError"))}).finally(()=>{y(!1)}):y(!1)},[a,k]);let B=(0,c.useMemo)(()=>s.map(a=>a.server_name),[s]),C=(0,c.useMemo)(()=>s.filter(a=>{let b=l.toLowerCase(),c=!b||a.name.toLowerCase().includes(b)||(a.mcp_info?.description??"").toLowerCase().includes(b),d="all"===n||a.transport===n;return c&&d}),[s,l,n]);return a?u?(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8",children:(0,b.jsxs)("p",{className:"text-muted-foreground",children:[k("accessibility.loading"),"..."]})}):(0,b.jsxs)("div",{className:"space-y-6 p-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-bold",children:k("mcpServers.title")}),z?(0,b.jsx)("div",{className:"border-destructive/50 bg-destructive/10 mt-2 rounded-md border p-3",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(e.AlertCircle,{className:"text-destructive h-4 w-4"}),(0,b.jsx)("p",{className:"text-destructive text-sm",children:z})]})}):null,(0,b.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:k("mcpServers.subtitle")})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(h.Input,{placeholder:k("mcpServers.searchPlaceholder"),value:l,onChange:a=>m(a.target.value),className:"max-w-xs"}),(0,b.jsx)("div",{className:"flex gap-1",children:x.map(a=>(0,b.jsx)(i.Badge,{variant:n===a?"default":"outline",className:"cursor-pointer",onClick:()=>p(a),children:"all"===a?k("mcpServers.filter.all"):k(`mcpServers.transport.${a}`,a.toUpperCase())},a))})]}),0===C.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,b.jsx)(j.EmptyState,{icon:0===s.length?(0,b.jsx)(g.Server,{className:"h-8 w-8"}):(0,b.jsx)(f.Search,{className:"h-8 w-8"}),title:0===s.length?k("mcpServers.noServers"):k("mcpServers.noResults")})}):(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:C.map(a=>(0,b.jsx)(o,{server:a,onSelect:r},a.server_id))}),(0,b.jsx)(v,{server:q,serverNames:B,open:!!q,onClose:()=>r(null)})]}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8",children:(0,b.jsx)(j.EmptyState,{icon:(0,b.jsx)(e.AlertCircle,{className:"h-8 w-8"}),title:k("mcpServers.noProxy")})})}],6790)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0ia4o6_._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-servers-page-client.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-card.tsx","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-tool-list.tsx","../../../../../../../src/presentation/web/app/actions/data%3A108df5%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.tsx","../../../../../../../src/presentation/web/app/actions/data%3Aa0e1b3%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/wifi.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n/*\n * Card — shadcn primitive extended with Stitch's editorial-shadow utility.\n * The `editorial-shadow` class (globals.css) replaces the old `shadow` class\n * with a subtle shadow + ring combination that gives cards a \"lifted\" look\n * and renders consistently against the editorial surface palette in both\n * light and dark modes. The `border` class stays for explicit border visibility\n * in dense grids; editorial-shadow's ring provides the soft lift on top.\n */\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground editorial-shadow rounded-xl border', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","'use client';\n\nimport { useState, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { AlertCircle, Search, Server } from 'lucide-react';\nimport { Input } from '@/components/ui/input';\nimport { Badge } from '@/components/ui/badge';\nimport { EmptyState } from '@/components/common/empty-state';\nimport { McpServerCard } from './mcp-server-card';\nimport { McpServerDetailDrawer } from './mcp-server-detail-drawer';\nimport { fetchMcpServersAction } from '@/app/actions/fetch-mcp-servers';\nimport type { McpServerInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServersPageClientProps {\n proxyConfigured: boolean;\n}\n\nconst TRANSPORT_FILTERS = ['all', 'http', 'sse', 'stdio'] as const;\n\nexport function McpServersPageClient({ proxyConfigured }: McpServersPageClientProps) {\n const { t } = useTranslation();\n const [searchQuery, setSearchQuery] = useState('');\n const [transportFilter, setTransportFilter] = useState<string>('all');\n const [selectedServer, setSelectedServer] = useState<McpServerInfo | null>(null);\n const [servers, setServers] = useState<McpServerInfo[]>([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!proxyConfigured) {\n setLoading(false);\n return;\n }\n fetchMcpServersAction()\n .then((result) => {\n setServers(result.servers);\n if (result.error) setError(result.error);\n })\n .catch(() => {\n setError(t('mcpServers.fetchError'));\n })\n .finally(() => {\n setLoading(false);\n });\n }, [proxyConfigured, t]);\n\n const serverNames = useMemo(() => servers.map((s) => s.server_name), [servers]);\n\n const filtered = useMemo(() => {\n return servers.filter((server) => {\n const query = searchQuery.toLowerCase();\n const matchesQuery =\n !query ||\n server.name.toLowerCase().includes(query) ||\n (server.mcp_info?.description ?? '').toLowerCase().includes(query);\n\n const matchesTransport = transportFilter === 'all' || server.transport === transportFilter;\n\n return matchesQuery && matchesTransport;\n });\n }, [servers, searchQuery, transportFilter]);\n\n if (!proxyConfigured) {\n return (\n <div className=\"flex h-full items-center justify-center p-8\">\n <EmptyState icon={<AlertCircle className=\"h-8 w-8\" />} title={t('mcpServers.noProxy')} />\n </div>\n );\n }\n\n if (loading) {\n return (\n <div className=\"flex h-full items-center justify-center p-8\">\n <p className=\"text-muted-foreground\">{t('accessibility.loading')}...</p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-bold\">{t('mcpServers.title')}</h1>\n {error ? (\n <div className=\"border-destructive/50 bg-destructive/10 mt-2 rounded-md border p-3\">\n <div className=\"flex items-center gap-2\">\n <AlertCircle className=\"text-destructive h-4 w-4\" />\n <p className=\"text-destructive text-sm\">{error}</p>\n </div>\n </div>\n ) : null}\n <p className=\"text-muted-foreground mt-1 text-sm\">{t('mcpServers.subtitle')}</p>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Input\n placeholder={t('mcpServers.searchPlaceholder')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"max-w-xs\"\n />\n <div className=\"flex gap-1\">\n {TRANSPORT_FILTERS.map((filter) => (\n <Badge\n key={filter}\n variant={transportFilter === filter ? 'default' : 'outline'}\n className=\"cursor-pointer\"\n onClick={() => setTransportFilter(filter)}\n >\n {filter === 'all'\n ? t('mcpServers.filter.all')\n : t(`mcpServers.transport.${filter}`, filter.toUpperCase())}\n </Badge>\n ))}\n </div>\n </div>\n\n {filtered.length === 0 ? (\n <div className=\"flex items-center justify-center py-16\">\n <EmptyState\n icon={\n servers.length === 0 ? <Server className=\"h-8 w-8\" /> : <Search className=\"h-8 w-8\" />\n }\n title={servers.length === 0 ? t('mcpServers.noServers') : t('mcpServers.noResults')}\n />\n </div>\n ) : (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((server) => (\n <McpServerCard key={server.server_id} server={server} onSelect={setSelectedServer} />\n ))}\n </div>\n )}\n\n <McpServerDetailDrawer\n server={selectedServer}\n serverNames={serverNames}\n open={!!selectedServer}\n onClose={() => setSelectedServer(null)}\n />\n </div>\n );\n}\n","'use client';\n\nimport { useTranslation } from 'react-i18next';\nimport { Card } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Server, Wifi, Terminal } from 'lucide-react';\nimport type { McpServerInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServerCardProps {\n server: McpServerInfo;\n onSelect: (server: McpServerInfo) => void;\n}\n\nconst TRANSPORT_ICONS: Record<string, typeof Server> = {\n http: Server,\n sse: Wifi,\n stdio: Terminal,\n};\n\nexport function McpServerCard({ server, onSelect }: McpServerCardProps) {\n const { t } = useTranslation();\n const TransportIcon = TRANSPORT_ICONS[server.transport] ?? Server;\n const description = server.mcp_info?.description ?? '';\n\n return (\n <Card\n className=\"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(server)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect(server);\n }\n }}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex items-center gap-2\">\n <TransportIcon className=\"text-muted-foreground h-4 w-4 shrink-0\" />\n <h3 className=\"text-sm font-semibold\">{server.name}</h3>\n </div>\n <Badge variant=\"outline\" className=\"shrink-0 text-xs\">\n {t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase())}\n </Badge>\n </div>\n\n {description ? (\n <p className=\"text-muted-foreground mt-2 line-clamp-2 text-xs\">{description}</p>\n ) : null}\n\n <div className=\"mt-3 flex items-center gap-2\">\n {server.auth_type && server.auth_type !== 'none' ? (\n <Badge variant=\"secondary\" className=\"text-xs\">\n {t(`mcpServers.authType.${server.auth_type}`, server.auth_type)}\n </Badge>\n ) : null}\n </div>\n </Card>\n );\n}\n","'use client';\n\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport type { McpToolInfo } from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpToolListProps {\n tools: McpToolInfo[];\n serverNames: string[];\n}\n\ninterface GroupedTools {\n serverName: string;\n tools: { displayName: string; description?: string }[];\n}\n\n/**\n * Groups tools by server name prefix.\n *\n * LiteLLM prefixes tool names with `{server_name}-` (e.g., `github_mcp-list_issues`).\n * We match each tool's name against known server names and strip the prefix for display.\n * Tools with no matching prefix go in an \"Other\" group.\n */\nexport function groupToolsByServer(tools: McpToolInfo[], serverNames: string[]): GroupedTools[] {\n const groups = new Map<string, { displayName: string; description?: string }[]>();\n\n for (const tool of tools) {\n let matched = false;\n for (const serverName of serverNames) {\n const prefix = `${serverName}-`;\n if (tool.name.startsWith(prefix)) {\n const displayName = tool.name.slice(prefix.length);\n if (!groups.has(serverName)) groups.set(serverName, []);\n groups.get(serverName)!.push({ displayName, description: tool.description });\n matched = true;\n break;\n }\n }\n if (!matched) {\n if (!groups.has('other')) groups.set('other', []);\n groups.get('other')!.push({ displayName: tool.name, description: tool.description });\n }\n }\n\n return Array.from(groups.entries())\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([serverName, tools]) => ({\n serverName,\n tools: tools.sort((a, b) => a.displayName.localeCompare(b.displayName)),\n }));\n}\n\nexport function McpToolList({ tools, serverNames }: McpToolListProps) {\n const { t } = useTranslation();\n const grouped = useMemo(() => groupToolsByServer(tools, serverNames), [tools, serverNames]);\n\n if (tools.length === 0) {\n return <p className=\"text-muted-foreground text-sm\">{t('mcpServers.tools.noTools')}</p>;\n }\n\n return (\n <div className=\"space-y-4\">\n {grouped.map((group) => (\n <div key={group.serverName}>\n <h4 className=\"text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase\">\n {group.serverName === 'other' ? t('mcpServers.tools.other') : group.serverName}\n </h4>\n <div className=\"space-y-2\">\n {group.tools.map((tool) => (\n <div\n key={`${group.serverName}-${tool.displayName}`}\n className=\"rounded-md border p-2\"\n >\n <div className=\"flex items-center gap-2\">\n <Badge variant=\"outline\" className=\"font-mono text-xs\">\n {tool.displayName}\n </Badge>\n </div>\n {tool.description ? (\n <p className=\"text-muted-foreground mt-1 text-xs\">{tool.description}</p>\n ) : null}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"000b119857dc5404d838bc991cc9be5277f2998823\":{\"name\":\"fetchMcpServerToolsAction\"}},\"src/presentation/web/app/actions/fetch-mcp-server-tools.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"000b119857dc5404d838bc991cc9be5277f2998823\",callServer,void 0,findSourceMapURL,\"fetchMcpServerToolsAction\");export{$$RSC_SERVER_ACTION_0 as fetchMcpServerToolsAction};","'use client';\n\nimport { useEffect, useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Separator } from '@/components/ui/separator';\nimport { Badge } from '@/components/ui/badge';\nimport { McpToolList } from './mcp-tool-list';\nimport { fetchMcpServerToolsAction } from '@/app/actions/fetch-mcp-server-tools';\nimport type {\n McpServerInfo,\n McpToolInfo,\n} from '@shipit-ai/core/application/ports/output/services/mcp-server-browser.interface';\n\ninterface McpServerDetailDrawerProps {\n server: McpServerInfo | null;\n serverNames: string[];\n open: boolean;\n onClose: () => void;\n}\n\nfunction isValidDisplayUrl(url?: string): boolean {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nexport function McpServerDetailDrawer({\n server,\n serverNames,\n open,\n onClose,\n}: McpServerDetailDrawerProps) {\n const { t } = useTranslation();\n const [tools, setTools] = useState<McpToolInfo[]>([]);\n const [loadingTools, setLoadingTools] = useState(false);\n const [toolError, setToolError] = useState<string | null>(null);\n\n const loadTools = useCallback(async () => {\n setLoadingTools(true);\n setToolError(null);\n try {\n const result = await fetchMcpServerToolsAction();\n setTools(result.tools);\n if (result.error) setToolError(result.error);\n } catch {\n setToolError('Failed to load tools');\n } finally {\n setLoadingTools(false);\n }\n }, []);\n\n useEffect(() => {\n if (open && server && tools.length === 0) {\n loadTools();\n }\n }, [open, server, tools.length, loadTools]);\n\n if (!server) return null;\n\n const description = server.mcp_info?.description ?? '';\n\n return (\n <BaseDrawer open={open} onClose={onClose}>\n <DrawerTitle>{server.name}</DrawerTitle>\n {description ? <DrawerDescription>{description}</DrawerDescription> : null}\n\n <Separator className=\"my-4\" />\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.serverName')}</span>\n <span className=\"font-mono text-xs\">{server.server_name}</span>\n </div>\n\n {isValidDisplayUrl(server.url) ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.url')}</span>\n <span className=\"max-w-[200px] truncate font-mono text-xs\">{server.url}</span>\n </div>\n ) : null}\n\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.transport')}</span>\n <Badge variant=\"outline\" className=\"text-xs\">\n {t(`mcpServers.transport.${server.transport}`, server.transport.toUpperCase())}\n </Badge>\n </div>\n\n {server.auth_type && server.auth_type !== 'none' ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-xs\">{t('mcpServers.detail.authType')}</span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {t(`mcpServers.authType.${server.auth_type}`, server.auth_type)}\n </Badge>\n </div>\n ) : null}\n </div>\n\n <Separator className=\"my-4\" />\n\n <h3 className=\"mb-3 text-sm font-semibold\">{t('mcpServers.tools.title')}</h3>\n {loadingTools ? (\n <p className=\"text-muted-foreground text-sm\">{t('accessibility.loading')}...</p>\n ) : toolError ? (\n <p className=\"text-destructive text-sm\">{toolError}</p>\n ) : (\n <McpToolList tools={tools} serverNames={serverNames} />\n )}\n </BaseDrawer>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"00a6d7d3d6e6e2ef2500401ead3be9498955935c25\":{\"name\":\"fetchMcpServersAction\"}},\"src/presentation/web/app/actions/fetch-mcp-servers.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00a6d7d3d6e6e2ef2500401ead3be9498955935c25\",callServer,void 0,findSourceMapURL,\"fetchMcpServersAction\");export{$$RSC_SERVER_ACTION_0 as fetchMcpServersAction};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 20h.01', key: 'zekei9' }],\n ['path', { d: 'M2 8.82a15 15 0 0 1 20 0', key: 'dnpr2z' }],\n ['path', { d: 'M5 12.859a10 10 0 0 1 14 0', key: '1x1e6c' }],\n ['path', { d: 'M8.5 16.429a5 5 0 0 1 7 0', key: '1bycff' }],\n];\n\n/**\n * @component @name Wifi\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/wifi\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wifi = createLucideIcon('wifi', __iconNode);\n\nexport default Wifi;\n"],"names":["EmptyState","icon","title","description","action","className","props","Card","ref","displayName","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","d"],"mappings":"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","ignoreList":[0,1,11]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[58339,a=>{"use strict";var b=a.i(53083),c=a.i(42261),d=a.i(85536);let e=(0,c.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},60197,22018,a=>{"use strict";let b=(0,a.i(97624).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",0,b],22018),a.s(["Check",0,b],60197)},53823,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(59653),e=a.i(80303),f=a.i(95819),g=a.i(49350),h=a.i(98340),i=a.i(39990),j=a.i(55277),k=a.i(29724),l=a.i(50608),m=a.i(73490),n=a.i(30419),o=a.i(92274),p=a.i(47427),q=a.i(16164),r=a.i(55571),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",0,A,"Arrow",0,P,"Close",0,O,"Content",0,I,"Popover",0,y,"PopoverAnchor",0,A,"PopoverArrow",0,P,"PopoverClose",0,O,"PopoverContent",0,I,"PopoverPortal",0,G,"PopoverTrigger",0,C,"Portal",0,G,"Root",0,y,"Trigger",0,C,"createPopoverScope",0,u],97514);var R=a.i(97514),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",0,T,"PopoverContent",0,V,"PopoverTrigger",0,U],53823)},65798,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",0,b],65798)},61781,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(60197),e=a.i(40227),f=a.i(38776);a.i(98617);var g=a.i(50040),h=a.i(75347),i=a.i(45865),j=a.i(17606),k=a.i(83852),l=a.i(58339),m=a.i(18948),n=a.i(53823),o=a.i(85536);a.s(["AgentModelPicker",0,function({initialAgentType:a,initialModel:p,onAgentModelChange:q,disabled:r,className:s,mode:t}){let{t:u}=(0,g.useTranslation)("web"),[v,w]=c.useState(!1),[x,y]=c.useState([]),[z,A]=c.useState(!0),[B,C]=c.useState(a),[D,E]=c.useState(p),[F,G]=c.useState(null),[H,I]=c.useState(0),[J,K]=c.useState(null);c.useEffect(()=>{(0,h.getAllAgentModels)().then(y).finally(()=>A(!1))},[]),c.useEffect(()=>{if(!v){let a=setTimeout(()=>{I(0),K(null)},150);return()=>clearTimeout(a)}},[v]);let L=async(a,b)=>{if(w(!1),a!==B||b!==D){if("override"===t){C(a),E(b),q?.(a,b);return}C(a),E(b),q?.(a,b),G(null);try{let c=await (0,i.updateAgentAndModel)(a,b||null);c.ok||(C(B),E(D),q?.(B,D),G(c.error??"Failed to save"))}catch{C(B),E(D),q?.(B,D),G("Failed to save")}}},M=(0,j.getAgentTypeIcon)(B),N=x.find(a=>a.agentType===B)?.label??B,O=D?(0,k.getModelMeta)(D).displayName||D:null,P=J?x.find(a=>a.agentType===J):null;return(0,b.jsxs)("div",{className:(0,o.cn)("flex flex-col gap-1",s),children:[(0,b.jsxs)(n.Popover,{open:v,onOpenChange:w,children:[(0,b.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(m.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":v,"aria-invalid":!!F,"aria-describedby":F?"agent-model-picker-error":void 0,disabled:(r??!1)||z,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(M,{className:"h-4 w-4 shrink-0"}),z?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:N}),O?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:O})]}):null]})]})})}),(0,b.jsx)(n.PopoverContent,{className:"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===H?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),x.map(a=>{let c=(0,j.getAgentTypeIcon)(a.agentType),e=B===a.agentType,g=a.models.length>0;return(0,b.jsxs)("button",{type:"button",disabled:!a.installed,className:(0,o.cn)("flex w-full items-center gap-2.5 px-3 py-2 text-xs transition-colors",a.installed?"hover:bg-accent hover:text-accent-foreground cursor-pointer":"cursor-not-allowed opacity-60",e&&"bg-accent/50"),onClick:()=>{a.installed&&(g?(K(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>I(1))})):L(a.agentType,""))},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-start",children:a.label}),(0,b.jsx)(l.Badge,{variant:"outline",className:(0,o.cn)("px-1.5 py-0 text-[10px] leading-4 font-normal",a.installed?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:a.installed?u("settings.environment.installed"):u("settings.environment.notInstalled")}),e&&!g?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,g&&a.installed?(0,b.jsx)(f.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:P?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{I(0),setTimeout(()=>K(null),220)},children:[(0,b.jsx)(e.ChevronLeft,{className:"h-3.5 w-3.5"}),P.label]}),P.models.map(a=>{let c=B===P.agentType&&D===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,o.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>L(P.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!F&&(0,b.jsx)("p",{id:"agent-model-picker-error",className:"text-destructive text-sm",role:"alert",children:F})]})}])},79620,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}])},14068,a=>{"use strict";let b=(0,a.i(97624).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",0,b])}];
|
|
1
|
+
module.exports=[58339,a=>{"use strict";var b=a.i(53083),c=a.i(42261),d=a.i(85536);let e=(0,c.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},60197,22018,a=>{"use strict";let b=(0,a.i(97624).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",0,b],22018),a.s(["Check",0,b],60197)},53823,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(59653),e=a.i(80303),f=a.i(95819),g=a.i(49350),h=a.i(98340),i=a.i(39990),j=a.i(55277),k=a.i(29724),l=a.i(50608),m=a.i(73490),n=a.i(30419),o=a.i(92274),p=a.i(47427),q=a.i(16164),r=a.i(55571),s="Popover",[t,u]=(0,f.createContextScope)(s,[k.createPopperScope]),v=(0,k.createPopperScope)(),[w,x]=t(s),y=a=>{let{__scopePopover:d,children:e,open:f,defaultOpen:g,onOpenChange:h,modal:i=!1}=a,l=v(d),m=c.useRef(null),[n,o]=c.useState(!1),[q,r]=(0,p.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:s});return(0,b.jsx)(k.Root,{...l,children:(0,b.jsx)(w,{scope:d,contentId:(0,j.useId)(),triggerRef:m,open:q,onOpenChange:r,onOpenToggle:c.useCallback(()=>r(a=>!a),[r]),hasCustomAnchor:n,onCustomAnchorAdd:c.useCallback(()=>o(!0),[]),onCustomAnchorRemove:c.useCallback(()=>o(!1),[]),modal:i,children:e})})};y.displayName=s;var z="PopoverAnchor",A=c.forwardRef((a,d)=>{let{__scopePopover:e,...f}=a,g=x(z,e),h=v(e),{onCustomAnchorAdd:i,onCustomAnchorRemove:j}=g;return c.useEffect(()=>(i(),()=>j()),[i,j]),(0,b.jsx)(k.Anchor,{...h,...f,ref:d})});A.displayName=z;var B="PopoverTrigger",C=c.forwardRef((a,c)=>{let{__scopePopover:f,...g}=a,h=x(B,f),i=v(f),j=(0,e.useComposedRefs)(c,h.triggerRef),l=(0,b.jsx)(n.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.contentId,"data-state":Q(h.open),...g,ref:j,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)});return h.hasCustomAnchor?l:(0,b.jsx)(k.Anchor,{asChild:!0,...i,children:l})});C.displayName=B;var D="PopoverPortal",[E,F]=t(D,{forceMount:void 0}),G=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=x(D,c);return(0,b.jsx)(E,{scope:c,forceMount:d,children:(0,b.jsx)(m.Presence,{present:d||g.open,children:(0,b.jsx)(l.Portal,{asChild:!0,container:f,children:e})})})};G.displayName=D;var H="PopoverContent",I=c.forwardRef((a,c)=>{let d=F(H,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=x(H,a.__scopePopover);return(0,b.jsx)(m.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(K,{...f,ref:c}):(0,b.jsx)(L,{...f,ref:c})})});I.displayName=H;var J=(0,o.createSlot)("PopoverContent.RemoveScroll"),K=c.forwardRef((a,f)=>{let g=x(H,a.__scopePopover),h=c.useRef(null),i=(0,e.useComposedRefs)(f,h),j=c.useRef(!1);return c.useEffect(()=>{let a=h.current;if(a)return(0,q.hideOthers)(a)},[]),(0,b.jsx)(r.RemoveScroll,{as:J,allowPinchZoom:!0,children:(0,b.jsx)(M,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),j.current||g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;j.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),L=c.forwardRef((a,d)=>{let e=x(H,a.__scopePopover),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(M,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),M=c.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:j,disableOutsidePointerEvents:l,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onInteractOutside:p,...q}=a,r=x(H,d),s=v(d);return(0,h.useFocusGuards)(),(0,b.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:j,children:(0,b.jsx)(g.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:p,onEscapeKeyDown:m,onPointerDownOutside:n,onFocusOutside:o,onDismiss:()=>r.onOpenChange(!1),children:(0,b.jsx)(k.Content,{"data-state":Q(r.open),role:"dialog",id:r.contentId,...s,...q,ref:c,style:{...q.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),N="PopoverClose",O=c.forwardRef((a,c)=>{let{__scopePopover:e,...f}=a,g=x(N,e);return(0,b.jsx)(n.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});O.displayName=N;var P=c.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=v(d);return(0,b.jsx)(k.Arrow,{...f,...e,ref:c})});function Q(a){return a?"open":"closed"}P.displayName="PopoverArrow",a.s(["Anchor",0,A,"Arrow",0,P,"Close",0,O,"Content",0,I,"Popover",0,y,"PopoverAnchor",0,A,"PopoverArrow",0,P,"PopoverClose",0,O,"PopoverContent",0,I,"PopoverPortal",0,G,"PopoverTrigger",0,C,"Portal",0,G,"Root",0,y,"Trigger",0,C,"createPopoverScope",0,u],97514);var R=a.i(97514),R=R,S=a.i(85536);let T=R.Root,U=R.Trigger;R.Anchor;let V=c.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(R.Portal,{children:(0,b.jsx)(R.Content,{ref:f,align:c,sideOffset:d,className:(0,S.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",a),...e})}));V.displayName=R.Content.displayName,a.s(["Popover",0,T,"PopoverContent",0,V,"PopoverTrigger",0,U],53823)},65798,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",0,b],65798)},61781,a=>{"use strict";var b=a.i(53083),c=a.i(11321),d=a.i(60197),e=a.i(40227),f=a.i(38776);a.i(98617);var g=a.i(50040),h=a.i(63789),i=a.i(37891),j=a.i(17606),k=a.i(83852),l=a.i(58339),m=a.i(18948),n=a.i(53823),o=a.i(85536);a.s(["AgentModelPicker",0,function({initialAgentType:a,initialModel:p,onAgentModelChange:q,disabled:r,className:s,mode:t}){let{t:u}=(0,g.useTranslation)("web"),[v,w]=c.useState(!1),[x,y]=c.useState([]),[z,A]=c.useState(!0),[B,C]=c.useState(a),[D,E]=c.useState(p),[F,G]=c.useState(null),[H,I]=c.useState(0),[J,K]=c.useState(null);c.useEffect(()=>{(0,h.getAllAgentModels)().then(y).finally(()=>A(!1))},[]),c.useEffect(()=>{if(!v){let a=setTimeout(()=>{I(0),K(null)},150);return()=>clearTimeout(a)}},[v]);let L=async(a,b)=>{if(w(!1),a!==B||b!==D){if("override"===t){C(a),E(b),q?.(a,b);return}C(a),E(b),q?.(a,b),G(null);try{let c=await (0,i.updateAgentAndModel)(a,b||null);c.ok||(C(B),E(D),q?.(B,D),G(c.error??"Failed to save"))}catch{C(B),E(D),q?.(B,D),G("Failed to save")}}},M=(0,j.getAgentTypeIcon)(B),N=x.find(a=>a.agentType===B)?.label??B,O=D?(0,k.getModelMeta)(D).displayName||D:null,P=J?x.find(a=>a.agentType===J):null;return(0,b.jsxs)("div",{className:(0,o.cn)("flex flex-col gap-1",s),children:[(0,b.jsxs)(n.Popover,{open:v,onOpenChange:w,children:[(0,b.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(m.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":v,"aria-invalid":!!F,"aria-describedby":F?"agent-model-picker-error":void 0,disabled:(r??!1)||z,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(M,{className:"h-4 w-4 shrink-0"}),z?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:N}),O?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:O})]}):null]})]})})}),(0,b.jsx)(n.PopoverContent,{className:"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===H?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),x.map(a=>{let c=(0,j.getAgentTypeIcon)(a.agentType),e=B===a.agentType,g=a.models.length>0;return(0,b.jsxs)("button",{type:"button",disabled:!a.installed,className:(0,o.cn)("flex w-full items-center gap-2.5 px-3 py-2 text-xs transition-colors",a.installed?"hover:bg-accent hover:text-accent-foreground cursor-pointer":"cursor-not-allowed opacity-60",e&&"bg-accent/50"),onClick:()=>{a.installed&&(g?(K(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>I(1))})):L(a.agentType,""))},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-start",children:a.label}),(0,b.jsx)(l.Badge,{variant:"outline",className:(0,o.cn)("px-1.5 py-0 text-[10px] leading-4 font-normal",a.installed?"border-emerald-500/30 text-emerald-500":"border-muted-foreground/30 text-muted-foreground"),children:a.installed?u("settings.environment.installed"):u("settings.environment.notInstalled")}),e&&!g?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,g&&a.installed?(0,b.jsx)(f.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:P?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{I(0),setTimeout(()=>K(null),220)},children:[(0,b.jsx)(e.ChevronLeft,{className:"h-3.5 w-3.5"}),P.label]}),P.models.map(a=>{let c=B===P.agentType&&D===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,o.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>L(P.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!F&&(0,b.jsx)("p",{id:"agent-model-picker-error",className:"text-destructive text-sm",role:"alert",children:F})]})}])},79620,a=>{"use strict";var b=a.i(53083),c=a.i(85536);a.s(["Textarea",0,function({className:a,...d}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,c.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...d})}])},14068,a=>{"use strict";let b=(0,a.i(97624).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",0,b])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0o.xc6x._.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module.exports=[2211,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(28446)},50961,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},23504,33244,27900,12513,73101,54775,65324,a=>{"use strict";var b=a.i(2211),c=a.i(96380);let d={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},e={displayName:"",description:""};var f=a.i(50961);let g={"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor CLI","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},h={"claude-code":0,"codex-cli":1,"copilot-cli":2,cursor:3,"gemini-cli":4,"rovo-dev":5},i={"claude-code":"claude-code","codex-cli":"codex-cli","copilot-cli":"copilot-cli",cursor:"cursor-cli","gemini-cli":"gemini-cli","rovo-dev":"rovo-dev"};async function j(){try{let a=(0,c.resolve)("IAgentExecutorFactory"),b=a.getSupportedAgents().map(b=>({agentType:b,label:g[b]??b,models:a.getSupportedModels(b).map(a=>{let b;return{id:a,...(b=d[a])||{...e,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}})})).filter(a=>a.models.length>0),f=(0,c.resolve)("IToolInstallerService");return(await Promise.all(b.map(async a=>{let b=i[a.agentType];if(!b)return{...a,installed:!0};try{let c=await f.checkAvailability(b);return{...a,installed:"available"===c.status}}catch{return{...a,installed:!1}}}))).sort((a,b)=>(h[a.agentType]??50)-(h[b.agentType]??50))}catch{return[]}}(0,f.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"00cb492dab92bd0326eab5f4e397f8a806590b6575",null),a.s(["getAllAgentModels",0,j],23504);let k="__shipitAiSettings";function l(){let a=globalThis[k];if(null!=a)return a;let b=process[k];return null!=b?b:null}function m(a){globalThis[k]=a,process[k]=a}function n(a){if(null!==l())throw Error("Settings already initialized. Cannot re-initialize.");m(a)}function o(){m(null)}async function p(a,b){if(!a.trim())return{ok:!1,error:"agent type is required"};try{let d=(0,c.resolve)("CompleteWebOnboardingUseCase"),e=await d.execute({agentType:a.trim(),model:b});return o(),n(e),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:"Failed to update agent and model"}}}a.s(["initializeSettings",0,n,"resetSettings",0,o,"updateSettings",0,function(a){if(null===l())throw Error("Settings not initialized. Cannot update before initialization.");m(a)}],33244),(0,f.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"60ae0963d90154a826e68059d74ce5b83ecdb42834",null),a.s(["updateAgentAndModel",0,p],27900),a.i(1442);var q=a.i(63128);async function r(){let a=new q.FolderDialogService;try{return{path:a.pickFolder()}}catch(a){return{path:null,error:a instanceof Error?a.message:"Failed to open folder dialog"}}}(0,f.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"009c2ce13787d87731005e2caf24c3b04c1fe25f07",null),a.s(["pickFolder",0,r],12513);class s extends Error{constructor(a,b){super(a),this.name="GitHubAuthError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}class t extends Error{constructor(a,b){super(a),this.name="GitHubCloneError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}class u extends Error{constructor(a,b){super(a),this.name="GitHubUrlParseError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}async function v(a){try{let b=(0,c.resolve)("ListGitHubRepositoriesUseCase");return{repos:await b.execute(a)}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};return{error:a instanceof Error?a.message:"Failed to list repositories"}}}async function w(){try{let a=(0,c.resolve)("ListGitHubOrganizationsUseCase");return{orgs:await a.execute()}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};return{error:a instanceof Error?a.message:"Failed to list organizations"}}}async function x(a){let{url:b,dest:d}=a;if(!b?.trim())return{error:"GitHub URL is required"};try{let a=(0,c.resolve)("ImportGitHubRepositoryUseCase");return{repository:await a.execute({url:b,dest:d})}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};if(a instanceof u)return{error:`Invalid GitHub URL: ${a.message}`};if(a instanceof t)return{error:`Clone failed: ${a.message}`};return{error:a instanceof Error?a.message:"Failed to import repository"}}}(0,f.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"4002ef12dc7114c887792161c7d672ee07c9b0b7c1",null),a.s(["listGitHubRepositories",0,v],73101),(0,f.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"00caf1ef96765d0bfecd15d5f020078aa108198719",null),a.s(["listGitHubOrganizations",0,w],54775),(0,f.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"40dcfd57d5d913aea2a63567caf17e493f93a24fb7",null),a.s(["importGitHubRepository",0,x],65324)},33841,46646,68670,85321,a=>{"use strict";var b=a.i(2211),c=a.i(2157),d=a.i(96380);a.i(1442);let e=()=>void 0;function f(a){let b=!!process.env.DEBUG;return{info:b?(...b)=>console.info(a,...b):e,debug:b?(...b)=>console.debug(a,...b):e,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}var g=a.i(29918),h=a.i(81719),i=a.i(50227);function j(a){try{let b=(0,c.realpathSync)((0,i.resolve)(a)).replace(/\\/g,"/"),d=(0,c.realpathSync)((0,i.resolve)("/home/runner/work/shipit/shipit/src/presentation/web")).replace(/\\/g,"/");return b===d}catch{return!1}}var k=a.i(50961);let l=f("[deployFeature]");async function m(a){if(l.info(`called — featureId="${a}"`),!a?.trim())return l.warn("rejected — featureId is empty"),{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return l.warn(`feature not found in repository: "${a}"`),{success:!1,error:`Feature not found: ${a}`};l.info(`feature found — repositoryPath="${e.repositoryPath}", branch="${e.branch}"`);let f=(0,g.computeWorktreePath)(e.repositoryPath,e.branch);if(l.info(`computed worktreePath="${f}"`),!(0,c.existsSync)(f))return l.warn(`worktree path does not exist on disk: "${f}"`),{success:!1,error:`Worktree path does not exist: ${f}`};if(j(e.repositoryPath))return l.warn("rejected — feature belongs to the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for features of the repository ShipIT is running from"};return l.info("worktree path exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,f,"feature"),l.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy feature";return l.error(`error: ${a}`,b),{success:!1,error:a}}}(0,k.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"4069a068bf879e0959b9a2e25e28c1c158fc17ec62",null),a.s(["deployFeature",0,m],33841);let n=f("[deployRepository]");async function o(a){let b;if(n.info(`called — repositoryPath="${a}"`),!a||!(0,i.isAbsolute)(a))return n.warn("rejected — not an absolute path"),{success:!1,error:"repositoryPath must be an absolute path"};try{b=(0,c.realpathSync)(a)}catch{return n.warn(`directory does not exist: "${a}"`),{success:!1,error:"Directory does not exist"}}try{if(j(b))return n.warn("rejected — target is the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for the repository ShipIT is running from"};return n.info("directory exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(b,b,"repository"),n.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy repository";return n.error(`error: ${a}`,b),{success:!1,error:a}}}async function p(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function q(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,k.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"4094d66bf41e32b9fbdd120e874b59bd171f7004d6",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"409f2e4acfe9a659a3e8e65ff8ad54bc3c521497d0",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4017845f1b9d6b77258fcee2ef1b0d08c8858bae7f",null),a.s(["getDeploymentStatus",0,q],85321)},94691,a=>{"use strict";var b=a.i(2211),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(50961).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"401cc86cdaf7035167c1d206d2b1077e5bfe47955a",null),a.s(["getDeploymentLogs",0,d])},21447,19720,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(){let a=(0,c.resolve)("LoadSettingsUseCase"),{workflow:b}=await a.execute();return{approvalGates:{allowPrd:b.approvalGateDefaults.allowPrd,allowPlan:b.approvalGateDefaults.allowPlan,allowMerge:b.approvalGateDefaults.allowMerge},push:b.approvalGateDefaults.pushOnImplementationComplete,openPr:b.openPrOnImplementationComplete,ciWatchEnabled:b.ciWatchEnabled,enableEvidence:b.enableEvidence,commitEvidence:b.commitEvidence,fast:b.defaultFastMode}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"0022a04e5826b9cef5a00b091e083cd6ddeb04c9bc",null),a.s(["getWorkflowDefaults",0,e],21447);let f=new Set(["ADMIN","MAINTAIN","WRITE"]);async function g(a){try{let b=(0,c.resolve)("IGitHubRepositoryService"),d=await b.getViewerPermission(a);return{canPushDirectly:f.has(d)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40a08f4e1f30f7280782018a81513a4982a821c4a4",null),a.s(["getViewerPermission",0,g],19720)},77605,71010,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(a){let{description:b,repositoryPath:d,attachments:e,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t}=a;if(!b?.trim())return{error:"description is required"};if(!d?.trim())return{error:"repositoryPath is required"};let u=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},23504,33244,27900,12513,73101,54775,65324,a=>{"use strict";var b=a.i(2211),c=a.i(96380);let d={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},e={displayName:"",description:""};var f=a.i(50961);let g={"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor CLI","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},h={"claude-code":0,"codex-cli":1,"copilot-cli":2,cursor:3,"gemini-cli":4,"rovo-dev":5},i={"claude-code":"claude-code","codex-cli":"codex-cli","copilot-cli":"copilot-cli",cursor:"cursor-cli","gemini-cli":"gemini-cli","rovo-dev":"rovo-dev"};async function j(){try{let a=(0,c.resolve)("IAgentExecutorFactory"),b=a.getSupportedAgents().map(b=>({agentType:b,label:g[b]??b,models:a.getSupportedModels(b).map(a=>{let b;return{id:a,...(b=d[a])||{...e,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}})})).filter(a=>a.models.length>0),f=(0,c.resolve)("IToolInstallerService");return(await Promise.all(b.map(async a=>{let b=i[a.agentType];if(!b)return{...a,installed:!0};try{let c=await f.checkAvailability(b);return{...a,installed:"available"===c.status}}catch{return{...a,installed:!1}}}))).sort((a,b)=>(h[a.agentType]??50)-(h[b.agentType]??50))}catch{return[]}}(0,f.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"0069ef1d56b1031a928403079be63459d41748b3fe",null),a.s(["getAllAgentModels",0,j],23504);let k="__shipitAiSettings";function l(){let a=globalThis[k];if(null!=a)return a;let b=process[k];return null!=b?b:null}function m(a){globalThis[k]=a,process[k]=a}function n(a){if(null!==l())throw Error("Settings already initialized. Cannot re-initialize.");m(a)}function o(){m(null)}async function p(a,b){if(!a.trim())return{ok:!1,error:"agent type is required"};try{let d=(0,c.resolve)("CompleteWebOnboardingUseCase"),e=await d.execute({agentType:a.trim(),model:b});return o(),n(e),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:"Failed to update agent and model"}}}a.s(["initializeSettings",0,n,"resetSettings",0,o,"updateSettings",0,function(a){if(null===l())throw Error("Settings not initialized. Cannot update before initialization.");m(a)}],33244),(0,f.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"60f6da21c3ba26aaabe566c12d0dc273540d1aab35",null),a.s(["updateAgentAndModel",0,p],27900),a.i(1442);var q=a.i(63128);async function r(){let a=new q.FolderDialogService;try{return{path:a.pickFolder()}}catch(a){return{path:null,error:a instanceof Error?a.message:"Failed to open folder dialog"}}}(0,f.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"003a0801a539b9c91bee1ddcd74fc281846133c1b4",null),a.s(["pickFolder",0,r],12513);class s extends Error{constructor(a,b){super(a),this.name="GitHubAuthError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}class t extends Error{constructor(a,b){super(a),this.name="GitHubCloneError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}class u extends Error{constructor(a,b){super(a),this.name="GitHubUrlParseError",Object.setPrototypeOf(this,new.target.prototype),b&&(this.cause=b)}}async function v(a){try{let b=(0,c.resolve)("ListGitHubRepositoriesUseCase");return{repos:await b.execute(a)}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};return{error:a instanceof Error?a.message:"Failed to list repositories"}}}async function w(){try{let a=(0,c.resolve)("ListGitHubOrganizationsUseCase");return{orgs:await a.execute()}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};return{error:a instanceof Error?a.message:"Failed to list organizations"}}}async function x(a){let{url:b,dest:d}=a;if(!b?.trim())return{error:"GitHub URL is required"};try{let a=(0,c.resolve)("ImportGitHubRepositoryUseCase");return{repository:await a.execute({url:b,dest:d})}}catch(a){if(a instanceof s)return{error:"GitHub CLI is not authenticated. Run `gh auth login` to sign in."};if(a instanceof u)return{error:`Invalid GitHub URL: ${a.message}`};if(a instanceof t)return{error:`Clone failed: ${a.message}`};return{error:a instanceof Error?a.message:"Failed to import repository"}}}(0,f.ensureServerEntryExports)([v]),(0,b.registerServerReference)(v,"4042093c4fa122e826baeb89fa202777afbdb9efa7",null),a.s(["listGitHubRepositories",0,v],73101),(0,f.ensureServerEntryExports)([w]),(0,b.registerServerReference)(w,"00596073b73c6abb55f7967040e08d048d3d1b9e2c",null),a.s(["listGitHubOrganizations",0,w],54775),(0,f.ensureServerEntryExports)([x]),(0,b.registerServerReference)(x,"4097bf6378ea9bae31c036a724fa42a06a397480ae",null),a.s(["importGitHubRepository",0,x],65324)},33841,46646,68670,85321,a=>{"use strict";var b=a.i(2211),c=a.i(2157),d=a.i(96380);a.i(1442);let e=()=>void 0;function f(a){let b=!!process.env.DEBUG;return{info:b?(...b)=>console.info(a,...b):e,debug:b?(...b)=>console.debug(a,...b):e,warn:(...b)=>console.warn(a,...b),error:(...b)=>console.error(a,...b)}}var g=a.i(29918),h=a.i(81719),i=a.i(50227);function j(a){try{let b=(0,c.realpathSync)((0,i.resolve)(a)).replace(/\\/g,"/"),d=(0,c.realpathSync)((0,i.resolve)("/home/runner/work/shipit/shipit/src/presentation/web")).replace(/\\/g,"/");return b===d}catch{return!1}}var k=a.i(50961);let l=f("[deployFeature]");async function m(a){if(l.info(`called — featureId="${a}"`),!a?.trim())return l.warn("rejected — featureId is empty"),{success:!1,error:"featureId is required"};try{let b=(0,d.resolve)("IFeatureRepository"),e=await b.findById(a);if(!e)return l.warn(`feature not found in repository: "${a}"`),{success:!1,error:`Feature not found: ${a}`};l.info(`feature found — repositoryPath="${e.repositoryPath}", branch="${e.branch}"`);let f=(0,g.computeWorktreePath)(e.repositoryPath,e.branch);if(l.info(`computed worktreePath="${f}"`),!(0,c.existsSync)(f))return l.warn(`worktree path does not exist on disk: "${f}"`),{success:!1,error:`Worktree path does not exist: ${f}`};if(j(e.repositoryPath))return l.warn("rejected — feature belongs to the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for features of the repository ShipIT is running from"};return l.info("worktree path exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(a,f,"feature"),l.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy feature";return l.error(`error: ${a}`,b),{success:!1,error:a}}}(0,k.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"408224bdf1ea8124bbe4be08d80a2a550dc6636e9c",null),a.s(["deployFeature",0,m],33841);let n=f("[deployRepository]");async function o(a){let b;if(n.info(`called — repositoryPath="${a}"`),!a||!(0,i.isAbsolute)(a))return n.warn("rejected — not an absolute path"),{success:!1,error:"repositoryPath must be an absolute path"};try{b=(0,c.realpathSync)(a)}catch{return n.warn(`directory does not exist: "${a}"`),{success:!1,error:"Directory does not exist"}}try{if(j(b))return n.warn("rejected — target is the running ShipIT instance"),{success:!1,error:"Cannot start a dev server for the repository ShipIT is running from"};return n.info("directory exists, calling deploymentService.start()"),(0,d.resolve)("IDeploymentService").start(b,b,"repository"),n.info("start() returned successfully — state=Booting"),{success:!0,state:h.DeploymentState.Booting}}catch(b){let a=b instanceof Error?b.message:"Failed to deploy repository";return n.error(`error: ${a}`,b),{success:!1,error:a}}}async function p(a){if(!a?.trim())return{success:!1,error:"targetId is required"};try{let b=(0,d.resolve)("IDeploymentService");return await b.stop(a),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to stop deployment"}}}async function q(a){return a?.trim()?(0,d.resolve)("IDeploymentService").getStatus(a):null}(0,k.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40081c3290a7137d66e58ff2a328155f18b22c9e52",null),a.s(["deployRepository",0,o],46646),(0,k.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"40bd2758ed0b33815b538cad707381c9083e19cba2",null),a.s(["stopDeployment",0,p],68670),(0,k.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"4025c066fd5bbb9a570db74c9c6c4f7a6e475fd2cc",null),a.s(["getDeploymentStatus",0,q],85321)},94691,a=>{"use strict";var b=a.i(2211),c=a.i(96380);async function d(a){return a?.trim()?(0,c.resolve)("IDeploymentService").getLogs(a):null}(0,a.i(50961).ensureServerEntryExports)([d]),(0,b.registerServerReference)(d,"40572e41ce6484a9082805c8dc61579968160406b9",null),a.s(["getDeploymentLogs",0,d])},21447,19720,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(){let a=(0,c.resolve)("LoadSettingsUseCase"),{workflow:b}=await a.execute();return{approvalGates:{allowPrd:b.approvalGateDefaults.allowPrd,allowPlan:b.approvalGateDefaults.allowPlan,allowMerge:b.approvalGateDefaults.allowMerge},push:b.approvalGateDefaults.pushOnImplementationComplete,openPr:b.openPrOnImplementationComplete,ciWatchEnabled:b.ciWatchEnabled,enableEvidence:b.enableEvidence,commitEvidence:b.commitEvidence,fast:b.defaultFastMode}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00c2c68e417c4b18fb34dcb938ad63c0b878df6d80",null),a.s(["getWorkflowDefaults",0,e],21447);let f=new Set(["ADMIN","MAINTAIN","WRITE"]);async function g(a){try{let b=(0,c.resolve)("IGitHubRepositoryService"),d=await b.getViewerPermission(a);return{canPushDirectly:f.has(d)}}catch{return{canPushDirectly:!1}}}(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40a2757564c25f4795af218df10208cbcc028070ab",null),a.s(["getViewerPermission",0,g],19720)},77605,71010,a=>{"use strict";var b=a.i(2211),c=a.i(96380),d=a.i(50961);async function e(a){let{description:b,repositoryPath:d,attachments:e,sessionId:f,approvalGates:g,push:h,openPr:i,parentId:j,fast:k,pending:l,forkAndPr:m,commitSpecs:n,ciWatchEnabled:o,enableEvidence:p,commitEvidence:q,agentType:r,model:s,rebaseBeforeBranch:t}=a;if(!b?.trim())return{error:"description is required"};if(!d?.trim())return{error:"repositoryPath is required"};let u=function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
|
|
3
3
|
|
|
4
|
-
${c}`}(b,e),v={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,c.resolve)("CreateFeatureUseCase"),{feature:e,shouldSpawn:g}=await a.createRecord({userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{}});return a.initializeAndSpawn(e,{userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"
|
|
4
|
+
${c}`}(b,e),v={allowPrd:g?.allowPrd??!1,allowPlan:g?.allowPlan??!1,allowMerge:g?.allowMerge??!1};try{let a=(0,c.resolve)("CreateFeatureUseCase"),{feature:e,shouldSpawn:g}=await a.createRecord({userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},description:b,...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...null!=t?{rebaseBeforeBranch:t}:{}});return a.initializeAndSpawn(e,{userInput:u,repositoryPath:d,approvalGates:v,push:h??!1,openPr:i??!1,...j?{parentId:j}:{},...k?{fast:k}:{},...l?{pending:l}:{},...null!=m?{forkAndPr:m}:{},...null!=n?{commitSpecs:n}:{},...null!=o?{ciWatchEnabled:o}:{},...null!=p?{enableEvidence:p}:{},...null!=q?{commitEvidence:q}:{},...r?{agentType:r}:{},...s?{model:s}:{},...f?{sessionId:f}:{},...null!=t?{rebaseBeforeBranch:t}:{}},g).catch(a=>{console.error("[createFeature] initializeAndSpawn failed:",a)}),{feature:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to create feature"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"401c780ab9c70b68ed94559ac98c1cd98a6ef73296",null),a.s(["createFeature",0,e],77605);var f=a.i(33244),g=a.i(76497),h=a.i(81719);let i={[h.AgentType.ClaudeCode]:[{value:h.ClaudeCodePermissionMode.BypassPermissions,label:"Bypass permissions",description:"Skip all permission checks. Fastest for batch runs.",batchSafe:!0},{value:h.ClaudeCodePermissionMode.AcceptEdits,label:"Accept edits",description:"Auto-approve file edits; prompt for shell/network.",batchSafe:!1},{value:h.ClaudeCodePermissionMode.Plan,label:"Plan",description:"Read-only; proposes changes without acting.",batchSafe:!1},{value:h.ClaudeCodePermissionMode.Default,label:"Default",description:"Prompt for everything except reads.",batchSafe:!1}],[h.AgentType.Cursor]:[{value:h.CursorPermissionMode.Yolo,label:"Yolo",description:"Write files and execute commands autonomously.",batchSafe:!0},{value:h.CursorPermissionMode.Propose,label:"Propose",description:"Read and analyze; output a diff without writing.",batchSafe:!0}],[h.AgentType.GeminiCli]:[{value:h.GeminiPermissionMode.Yolo,label:"Yolo",description:"Auto-approve all tool calls.",batchSafe:!0},{value:h.GeminiPermissionMode.AutoEdit,label:"Auto-edit",description:"Auto-approve edits; prompt for shell.",batchSafe:!1},{value:h.GeminiPermissionMode.Default,label:"Default",description:"Prompt for every tool call.",batchSafe:!1}],[h.AgentType.CodexCli]:[{value:h.CodexPermissionMode.DangerFullAccess,label:"Full access",description:"No sandbox. Unrestricted access.",batchSafe:!0},{value:h.CodexPermissionMode.WorkspaceWrite,label:"Workspace write",description:"Writes inside worktree, no network.",batchSafe:!0},{value:h.CodexPermissionMode.ReadOnly,label:"Read only",description:"Cannot modify anything.",batchSafe:!0}],[h.AgentType.CopilotCli]:[{value:h.CopilotPermissionMode.Yolo,label:"Yolo",description:"Disable all permission prompts.",batchSafe:!0},{value:h.CopilotPermissionMode.AllowPaths,label:"Allow paths",description:"Filesystem access auto-approved; shell prompts.",batchSafe:!1},{value:h.CopilotPermissionMode.Prompt,label:"Prompt",description:"Built-in tool category defaults.",batchSafe:!1}],[h.AgentType.RovoDev]:[{value:h.RovoDevPermissionMode.Yolo,label:"Yolo",description:"Bypass all prompts.",batchSafe:!0},{value:h.RovoDevPermissionMode.Shadow,label:"Shadow",description:"Temporary workspace clone. Experimental.",batchSafe:!1},{value:h.RovoDevPermissionMode.Config,label:"Config",description:"Respect ~/.rovodev/config.yml settings.",batchSafe:!1}]},j={[h.AgentType.ClaudeCode]:"claudeCode",[h.AgentType.Cursor]:"cursor",[h.AgentType.GeminiCli]:"geminiCli",[h.AgentType.CodexCli]:"codexCli",[h.AgentType.CopilotCli]:"copilotCli",[h.AgentType.RovoDev]:"rovoDev"};async function k(a){return i[a]??[]}async function l(a){let b=(0,c.resolve)("LoadSettingsUseCase"),d=await b.execute(),e=j[a];if(e)return d.agent?.permissions?.[e]}async function m(a,b){try{let d=j[a];if(!d)return{success:!1,error:`Unsupported agent type: ${a}`};let e=i[a];if(!e?.some(a=>a.value===b))return{success:!1,error:`Invalid permission mode: ${b}`};let h=(0,c.resolve)("LoadSettingsUseCase"),k=await h.execute(),l={...k,agent:{...k.agent,permissions:{...k.agent?.permissions,[d]:b}},updatedAt:new Date},m=(0,c.resolve)("UpdateSettingsUseCase");return await m.execute(l),(0,f.updateSettings)(l),(0,g.revalidatePath)("/","layout"),{success:!0}}catch(a){return{success:!1,error:a instanceof Error?a.message:"Failed to update permission mode"}}}(0,d.ensureServerEntryExports)([k,l,m]),(0,b.registerServerReference)(k,"4029c8b6630e7a21a766cb989180591beb0c4df7de",null),(0,b.registerServerReference)(l,"40590ef6ef995a0c0686030520dd934a959afdcf4f",null),(0,b.registerServerReference)(m,"60a757e21276ba9a26729ffc29c78ec08b6418ecbd",null),a.s(["getAgentPermissionOptions",0,k],71010)},81881,a=>{"use strict";var b=a.i(23504),c=a.i(27900),d=a.i(12513),e=a.i(73101),f=a.i(54775),g=a.i(65324),h=a.i(33841),i=a.i(46646),j=a.i(68670),k=a.i(85321),l=a.i(84095),m=a.i(56799),n=a.i(80496),o=a.i(93225),p=a.i(94691),q=a.i(41872),r=a.i(9959),s=a.i(79124),t=a.i(29207),u=a.i(10528),v=a.i(50845),w=a.i(26604),x=a.i(54723),y=a.i(18942),z=a.i(42886),A=a.i(49560),B=a.i(39353),C=a.i(21447),D=a.i(19720),E=a.i(77605),F=a.i(71010);a.s([],91325),a.i(91325),a.s(["003a0801a539b9c91bee1ddcd74fc281846133c1b4",()=>d.pickFolder,"004c68a6d7e7f54a378ef211474e899610a81ba2a5",()=>q.isAgentSetupComplete,"00596073b73c6abb55f7967040e08d048d3d1b9e2c",()=>f.listGitHubOrganizations,"005dd5a1b3f65ef6eed530978be48ca49e41806825",()=>r.checkAgentAuth,"0069ef1d56b1031a928403079be63459d41748b3fe",()=>b.getAllAgentModels,"00a7e7bc3ef4eb198ffb820fd546862092c744fb05",()=>s.checkToolStatus,"00c2c68e417c4b18fb34dcb938ad63c0b878df6d80",()=>C.getWorkflowDefaults,"40081c3290a7137d66e58ff2a328155f18b22c9e52",()=>i.deployRepository,"401c780ab9c70b68ed94559ac98c1cd98a6ef73296",()=>E.createFeature,"4025c066fd5bbb9a570db74c9c6c4f7a6e475fd2cc",()=>k.getDeploymentStatus,"4029c8b6630e7a21a766cb989180591beb0c4df7de",()=>F.getAgentPermissionOptions,"4042093c4fa122e826baeb89fa202777afbdb9efa7",()=>e.listGitHubRepositories,"404bc7ab38210b162e6718e187ff84fa129f84f9c4",()=>n.openFolder,"404dc0bfcd540b702e1bbb3d8997ad0e37247166b9",()=>x.startFeature,"404e63ca1155566c1ac69013f7d49a21449868e8e2",()=>l.openIde,"40572e41ce6484a9082805c8dc61579968160406b9",()=>p.getDeploymentLogs,"407358c4314951141244bc84ce4d2536c7781af0ff",()=>t.getFeatureMetadata,"4076fa2905c8dae67d8a93c911da9ca398e48cf22e",()=>y.stopFeature,"408224bdf1ea8124bbe4be08d80a2a550dc6636e9c",()=>h.deployFeature,"4084cac02544eba4d4857349905aef892b88cda46f",()=>z.unarchiveFeature,"4097bf6378ea9bae31c036a724fa42a06a397480ae",()=>g.importGitHubRepository,"40a2757564c25f4795af218df10208cbcc028070ab",()=>D.getViewerPermission,"40aa7b6f983ba8f04aa0306d50e608d5e56e270bf2",()=>A.addRepository,"40bd2758ed0b33815b538cad707381c9083e19cba2",()=>j.stopDeployment,"40d43ad9cbdba71bcb7191b9adca9f6b5919355384",()=>o.syncRepository,"40d66d6138bf8249c1156651e56618741fdf97424f",()=>u.archiveFeature,"40d6ad53f1b546afa1e2ce859f740f54db69b90500",()=>w.resumeFeature,"40dc812e621ced4861c9375be3f96be7e46efe450f",()=>m.openShell,"40ea84d213303e39add93283a998247f31a79b7f9b",()=>B.deleteRepository,"60f6da21c3ba26aaabe566c12d0dc273540d1aab35",()=>c.updateAgentAndModel,"78e4b1bfdf01657537704ecf684aec20830f60252a",()=>v.deleteFeature],81881)}];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=_0p3~u8u._.js.map
|