@shipit-ai/cli 1.171.0 → 1.172.0-pr16.b31ecd3
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/CodexCliProxyConfig.yaml +8 -0
- package/apis/json-schema/FeatureFlags.yaml +5 -0
- package/apis/json-schema/GeminiCliProxyConfig.yaml +8 -0
- package/apis/json-schema/LiteLLMProxyConfig.yaml +6 -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 +30 -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 +3 -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 +28 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-litellm-proxy-multi-agent.js +20 -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 +10 -5
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-provider.service.js +8 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +20 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +23 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +8 -0
- 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 +97 -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 +41 -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 +50 -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/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/litellm-proxy-routing-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.js +79 -7
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.d.ts +10 -3
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.js +87 -13
- 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 +55 -13
- package/dist/translations/de/web.json +75 -19
- package/dist/translations/en/web.json +56 -14
- package/dist/translations/es/web.json +56 -14
- package/dist/translations/fr/web.json +56 -14
- package/dist/translations/he/web.json +56 -14
- package/dist/translations/pt/web.json +56 -14
- package/dist/translations/ru/web.json +56 -14
- 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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- 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/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0b~nfa6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13pshs0._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0h_81zd._.js → _0-z2xjv._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0h_81zd._.js.map → _0-z2xjv._.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/_04z1jg3._.js +3 -0
- package/web/.next/server/chunks/ssr/{_0q4ou83._.js.map → _04z1jg3._.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/_0ia4o6_._.js +3 -0
- package/web/.next/server/chunks/ssr/_0ia4o6_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_11hrdyl._.js → _0ig8swf._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_11hrdyl._.js.map → _0ig8swf._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0o.xc6x._.js +1 -1
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_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/_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/00h433i5-1v_-.css +1 -0
- package/web/.next/static/chunks/{01tzmtex7umeb.js → 02ce237xcav6s.js} +1 -1
- package/web/.next/static/chunks/04~wdwkqgr57x.js +1 -0
- package/web/.next/static/chunks/0b1d~7i5gfw1-.js +1 -0
- package/web/.next/static/chunks/{11f-uj04jrom-.js → 0bqd0fy0w5e4k.js} +1 -1
- package/web/.next/static/chunks/{017xamyz033tm.js → 0f4oy2xirxwmj.js} +1 -1
- package/web/.next/static/chunks/{161s7._zxasc0.js → 0g-.voyjeec~b.js} +3 -3
- package/web/.next/static/chunks/{02z512ozs7al_.js → 0hxu8.xyx0z4-.js} +1 -1
- package/web/.next/static/chunks/{0x4yi7ly9kwn5.js → 0m0h4rzeoumvg.js} +1 -1
- package/web/.next/static/chunks/{0b2pi58fg3lt3.js → 0pm3xcdn669n~.js} +1 -1
- package/web/.next/static/chunks/{12lj54j~w8~13.js → 0qjlmwu-skciu.js} +1 -1
- package/web/.next/static/chunks/{012cnd7koqv6d.js → 0sgbbtfp4hspl.js} +2 -2
- package/web/.next/static/chunks/{0-glbn-_j79ge.js → 0tmm5-1w.tzfa.js} +1 -1
- package/web/.next/static/chunks/{0s1uxv-vz4g~..js → 0v1l16yu5yi0-.js} +1 -1
- package/web/.next/static/chunks/{0mmo8sojp2la5.js → 0~64izks_7xas.js} +1 -1
- package/web/.next/static/chunks/{0nry24zef5x6d.js → 0~~gsf7.gbljc.js} +1 -1
- package/web/.next/static/chunks/{10rtagfoabp3b.js → 10j-adknfho63.js} +1 -1
- package/web/.next/static/chunks/13nrt40z9yg93.js +1 -0
- package/web/.next/static/chunks/{0jpdu~hr9yant.js → 14e8.v2aj~k.c.js} +1 -1
- package/web/.next/static/chunks/14qne_94ozzr5.js +1 -0
- 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/_0q4ou83._.js +0 -3
- 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/0cx16obgb~.zq.js +0 -1
- package/web/.next/static/chunks/0eemg.2by.~76.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/0v7r7y~3e~oo6.css +0 -1
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → -6CqN67a8qSHOn097fc6D}/_buildManifest.js +0 -0
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → -6CqN67a8qSHOn097fc6D}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{FNmgUvRV-pz0hqn250ePU → -6CqN67a8qSHOn097fc6D}/_ssgManifest.js +0 -0
package/dist/src/presentation/web/components/features/settings/litellm-proxy-routing-section.js
CHANGED
|
@@ -10,11 +10,47 @@ import { SettingsSection, SettingsRow } from './settings-section-utils.js';
|
|
|
10
10
|
import { Input } from '../../ui/input.js';
|
|
11
11
|
import { Textarea } from '../../ui/textarea.js';
|
|
12
12
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../../ui/select.js';
|
|
13
|
+
/** Agent types that support env-var-based proxy routing (Tier 1) */
|
|
14
|
+
const TIER1_AGENTS = new Set(['claude-code', 'gemini-cli', 'codex-cli']);
|
|
15
|
+
/** Agent types that need documentation-only panels (Tier 2) */
|
|
16
|
+
const TIER2_AGENTS = new Set(['cursor', 'copilot-cli']);
|
|
17
|
+
/** Get the per-agent proxy config key for building payloads */
|
|
18
|
+
function agentConfigKey(agentType) {
|
|
19
|
+
switch (agentType) {
|
|
20
|
+
case 'claude-code':
|
|
21
|
+
return 'claudeCode';
|
|
22
|
+
case 'gemini-cli':
|
|
23
|
+
return 'geminiCli';
|
|
24
|
+
case 'codex-cli':
|
|
25
|
+
return 'codexCli';
|
|
26
|
+
default:
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Get the current routing mode for the active agent */
|
|
31
|
+
function getRoutingMode(settings) {
|
|
32
|
+
const agentType = settings.agent.type;
|
|
33
|
+
switch (agentType) {
|
|
34
|
+
case 'claude-code':
|
|
35
|
+
return settings.litellmProxy?.claudeCode?.routingMode ?? LiteLLMProxyRoutingMode.direct;
|
|
36
|
+
case 'gemini-cli':
|
|
37
|
+
return settings.litellmProxy?.geminiCli?.routingMode ?? LiteLLMProxyRoutingMode.direct;
|
|
38
|
+
case 'codex-cli':
|
|
39
|
+
return settings.litellmProxy?.codexCli?.routingMode ?? LiteLLMProxyRoutingMode.direct;
|
|
40
|
+
default:
|
|
41
|
+
return LiteLLMProxyRoutingMode.direct;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Whether this agent supports passthrough mode */
|
|
45
|
+
function supportsPassthrough(agentType) {
|
|
46
|
+
return agentType === 'claude-code';
|
|
47
|
+
}
|
|
13
48
|
export function LiteLLMProxyRoutingSection({ settings }) {
|
|
14
49
|
const { t } = useTranslation('web');
|
|
15
50
|
const [, startTransition] = useTransition();
|
|
51
|
+
const agentType = settings.agent.type;
|
|
16
52
|
const cc = settings.litellmProxy?.claudeCode;
|
|
17
|
-
const [routingMode, setRoutingMode] = useState(
|
|
53
|
+
const [routingMode, setRoutingMode] = useState(getRoutingMode(settings));
|
|
18
54
|
const [customHeaders, setCustomHeaders] = useState(cc?.customHeaders ?? '');
|
|
19
55
|
const [sonnetModel, setSonnetModel] = useState(cc?.sonnetModel ?? '');
|
|
20
56
|
const [haikuModel, setHaikuModel] = useState(cc?.haikuModel ?? '');
|
|
@@ -24,6 +60,10 @@ export function LiteLLMProxyRoutingSection({ settings }) {
|
|
|
24
60
|
const originalHaikuModel = cc?.haikuModel ?? '';
|
|
25
61
|
const originalOpusModel = cc?.opusModel ?? '';
|
|
26
62
|
const showProxyFields = routingMode !== LiteLLMProxyRoutingMode.direct;
|
|
63
|
+
const isTier1 = TIER1_AGENTS.has(agentType);
|
|
64
|
+
const isTier2 = TIER2_AGENTS.has(agentType);
|
|
65
|
+
const proxyUrl = settings.litellmProxy?.baseUrl ?? '';
|
|
66
|
+
const proxyApiKey = settings.litellmProxy?.apiKey ?? '';
|
|
27
67
|
function save(payload) {
|
|
28
68
|
startTransition(async () => {
|
|
29
69
|
const result = await updateSettingsAction(payload);
|
|
@@ -33,14 +73,27 @@ export function LiteLLMProxyRoutingSection({ settings }) {
|
|
|
33
73
|
});
|
|
34
74
|
}
|
|
35
75
|
function buildPayload(overrides) {
|
|
76
|
+
const key = agentConfigKey(agentType);
|
|
77
|
+
if (!key)
|
|
78
|
+
return {};
|
|
79
|
+
if (agentType === 'claude-code') {
|
|
80
|
+
return {
|
|
81
|
+
litellmProxy: {
|
|
82
|
+
claudeCode: {
|
|
83
|
+
routingMode: overrides?.routingMode ?? routingMode,
|
|
84
|
+
customHeaders: overrides?.customHeaders ?? customHeaders,
|
|
85
|
+
sonnetModel: overrides?.sonnetModel ?? sonnetModel,
|
|
86
|
+
haikuModel: overrides?.haikuModel ?? haikuModel,
|
|
87
|
+
opusModel: overrides?.opusModel ?? opusModel,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Gemini CLI and Codex CLI: only routingMode
|
|
36
93
|
return {
|
|
37
94
|
litellmProxy: {
|
|
38
|
-
|
|
95
|
+
[key]: {
|
|
39
96
|
routingMode: overrides?.routingMode ?? routingMode,
|
|
40
|
-
customHeaders: overrides?.customHeaders ?? customHeaders,
|
|
41
|
-
sonnetModel: overrides?.sonnetModel ?? sonnetModel,
|
|
42
|
-
haikuModel: overrides?.haikuModel ?? haikuModel,
|
|
43
|
-
opusModel: overrides?.opusModel ?? opusModel,
|
|
44
97
|
},
|
|
45
98
|
},
|
|
46
99
|
};
|
|
@@ -49,7 +102,26 @@ export function LiteLLMProxyRoutingSection({ settings }) {
|
|
|
49
102
|
setRoutingMode(value);
|
|
50
103
|
save(buildPayload({ routingMode: value }));
|
|
51
104
|
}
|
|
52
|
-
|
|
105
|
+
// Unsupported agent type
|
|
106
|
+
if (!isTier1 && !isTier2) {
|
|
107
|
+
return (_jsx(SettingsSection, { icon: Route, title: t('settings.litellmProxy.routing.title'), description: t('settings.litellmProxy.routing.description'), testId: "litellm-proxy-routing-section", tooltip: t('settings.litellmProxy.routing.hint'), children: _jsx(SettingsRow, { label: "", description: t('settings.litellmProxy.routing.notSupported'), children: _jsx("span", {}) }) }));
|
|
108
|
+
}
|
|
109
|
+
// Tier 2: Documentation-only panels
|
|
110
|
+
if (isTier2) {
|
|
111
|
+
const isCursor = agentType === 'cursor';
|
|
112
|
+
const displayUrl = proxyUrl
|
|
113
|
+
? isCursor
|
|
114
|
+
? `${proxyUrl.replace(/\/+$/, '')}/cursor`
|
|
115
|
+
: proxyUrl
|
|
116
|
+
: '';
|
|
117
|
+
return (_jsx(SettingsSection, { icon: Route, title: t('settings.litellmProxy.routing.title'), description: t('settings.litellmProxy.routing.description'), testId: "litellm-proxy-routing-section", tooltip: t('settings.litellmProxy.routing.hint'), children: _jsx(SettingsRow, { label: isCursor
|
|
118
|
+
? t('settings.litellmProxy.routing.cursorInstructions')
|
|
119
|
+
: t('settings.litellmProxy.routing.copilotInstructions'), description: isCursor
|
|
120
|
+
? t('settings.litellmProxy.routing.cursorDescription')
|
|
121
|
+
: t('settings.litellmProxy.routing.copilotDescription'), children: _jsxs("div", { className: "w-64 space-y-2", children: [_jsx("code", { className: "bg-muted block rounded px-2 py-1 text-xs break-all", children: displayUrl }), isCursor && proxyApiKey ? (_jsx("code", { className: "bg-muted block rounded px-2 py-1 text-xs break-all", children: proxyApiKey })) : null] }) }) }));
|
|
122
|
+
}
|
|
123
|
+
// Tier 1: Env-var-based proxy routing (Claude Code, Gemini CLI, Codex CLI)
|
|
124
|
+
return (_jsxs(SettingsSection, { icon: Route, title: t('settings.litellmProxy.routing.title'), description: t('settings.litellmProxy.routing.description'), testId: "litellm-proxy-routing-section", tooltip: t('settings.litellmProxy.routing.hint'), children: [_jsx(SettingsRow, { label: t('settings.litellmProxy.routing.mode'), description: t('settings.litellmProxy.routing.modeDescription'), htmlFor: "litellm-routing-mode", children: _jsxs(Select, { value: routingMode, onValueChange: handleModeChange, children: [_jsx(SelectTrigger, { id: "litellm-routing-mode", "data-testid": "litellm-routing-mode-select", className: "w-48 text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: LiteLLMProxyRoutingMode.direct, children: t('settings.litellmProxy.routing.modeDirect') }), _jsx(SelectItem, { value: LiteLLMProxyRoutingMode.proxy, children: t('settings.litellmProxy.routing.modeProxy') }), supportsPassthrough(agentType) && (_jsx(SelectItem, { value: LiteLLMProxyRoutingMode.passthrough, children: t('settings.litellmProxy.routing.modePassthrough') }))] })] }) }), routingMode === LiteLLMProxyRoutingMode.passthrough && (_jsx(SettingsRow, { label: "", description: t('settings.litellmProxy.routing.passthroughHelp'), children: _jsx("span", {}) })), showProxyFields && agentType === 'claude-code' ? (_jsxs(_Fragment, { children: [_jsx(SettingsRow, { label: t('settings.litellmProxy.routing.customHeaders'), description: t('settings.litellmProxy.routing.customHeadersDescription'), htmlFor: "litellm-custom-headers", children: _jsx(Textarea, { id: "litellm-custom-headers", "data-testid": "litellm-custom-headers-input", placeholder: 'x-litellm-customer-id: my-user\nx-litellm-tags: project:acme', value: customHeaders, onChange: (e) => setCustomHeaders(e.target.value), onBlur: () => {
|
|
53
125
|
if (customHeaders !== originalCustomHeaders) {
|
|
54
126
|
save(buildPayload({ customHeaders }));
|
|
55
127
|
}
|
|
@@ -10,7 +10,14 @@ declare const meta: {
|
|
|
10
10
|
};
|
|
11
11
|
export default meta;
|
|
12
12
|
type Story = StoryObj<typeof meta>;
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const
|
|
13
|
+
export declare const ClaudeCodeDirect: Story;
|
|
14
|
+
export declare const ClaudeCodeProxy: Story;
|
|
15
|
+
export declare const ClaudeCodePassthrough: Story;
|
|
16
|
+
export declare const GeminiCliDirect: Story;
|
|
17
|
+
export declare const GeminiCliProxy: Story;
|
|
18
|
+
export declare const CodexCliDirect: Story;
|
|
19
|
+
export declare const CodexCliProxy: Story;
|
|
20
|
+
export declare const CursorDocs: Story;
|
|
21
|
+
export declare const CopilotDocs: Story;
|
|
22
|
+
export declare const UnsupportedAgent: Story;
|
|
16
23
|
//# sourceMappingURL=litellm-proxy-routing-section.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"litellm-proxy-routing-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAa7E,QAAA,MAAM,IAAI;;;;;;;CAOyC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"litellm-proxy-routing-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/litellm-proxy-routing-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAa7E,QAAA,MAAM,IAAI;;;;;;;CAOyC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,gBAAgB,EAAE,KAW9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAWnC,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,KAW7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAIF,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAW3B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAIF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAIF,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC"}
|
|
@@ -18,47 +18,121 @@ const meta = {
|
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
20
|
export default meta;
|
|
21
|
-
|
|
21
|
+
// --- Claude Code (Tier 1, full features) ---
|
|
22
|
+
export const ClaudeCodeDirect = {
|
|
22
23
|
args: {
|
|
23
24
|
settings: {
|
|
24
25
|
...baseSettings,
|
|
26
|
+
agent: { ...baseSettings.agent, type: 'claude-code' },
|
|
25
27
|
litellmProxy: {
|
|
26
28
|
...baseSettings.litellmProxy,
|
|
27
|
-
claudeCode: {
|
|
28
|
-
routingMode: LiteLLMProxyRoutingMode.direct,
|
|
29
|
-
},
|
|
29
|
+
claudeCode: { routingMode: LiteLLMProxyRoutingMode.direct },
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
-
export const
|
|
34
|
+
export const ClaudeCodeProxy = {
|
|
35
35
|
args: {
|
|
36
36
|
settings: {
|
|
37
37
|
...baseSettings,
|
|
38
|
+
agent: { ...baseSettings.agent, type: 'claude-code' },
|
|
38
39
|
litellmProxy: {
|
|
39
40
|
...baseSettings.litellmProxy,
|
|
40
41
|
claudeCode: {
|
|
41
42
|
routingMode: LiteLLMProxyRoutingMode.proxy,
|
|
42
|
-
customHeaders: 'x-litellm-customer-id: user-123
|
|
43
|
+
customHeaders: 'x-litellm-customer-id: user-123',
|
|
43
44
|
sonnetModel: 'claude-sonnet-4-6',
|
|
44
|
-
haikuModel: 'claude-haiku-4-5',
|
|
45
|
-
opusModel: 'claude-opus-4-6',
|
|
46
45
|
},
|
|
47
46
|
},
|
|
48
47
|
},
|
|
49
48
|
},
|
|
50
49
|
};
|
|
51
|
-
export const
|
|
50
|
+
export const ClaudeCodePassthrough = {
|
|
52
51
|
args: {
|
|
53
52
|
settings: {
|
|
54
53
|
...baseSettings,
|
|
54
|
+
agent: { ...baseSettings.agent, type: 'claude-code' },
|
|
55
55
|
litellmProxy: {
|
|
56
56
|
...baseSettings.litellmProxy,
|
|
57
|
-
claudeCode: {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
claudeCode: { routingMode: LiteLLMProxyRoutingMode.passthrough },
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
// --- Gemini CLI (Tier 1, direct/proxy only) ---
|
|
63
|
+
export const GeminiCliDirect = {
|
|
64
|
+
args: {
|
|
65
|
+
settings: {
|
|
66
|
+
...baseSettings,
|
|
67
|
+
agent: { ...baseSettings.agent, type: 'gemini-cli' },
|
|
68
|
+
litellmProxy: {
|
|
69
|
+
...baseSettings.litellmProxy,
|
|
70
|
+
geminiCli: { routingMode: LiteLLMProxyRoutingMode.direct },
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
export const GeminiCliProxy = {
|
|
76
|
+
args: {
|
|
77
|
+
settings: {
|
|
78
|
+
...baseSettings,
|
|
79
|
+
agent: { ...baseSettings.agent, type: 'gemini-cli' },
|
|
80
|
+
litellmProxy: {
|
|
81
|
+
...baseSettings.litellmProxy,
|
|
82
|
+
geminiCli: { routingMode: LiteLLMProxyRoutingMode.proxy },
|
|
61
83
|
},
|
|
62
84
|
},
|
|
63
85
|
},
|
|
64
86
|
};
|
|
87
|
+
// --- Codex CLI (Tier 1, direct/proxy only) ---
|
|
88
|
+
export const CodexCliDirect = {
|
|
89
|
+
args: {
|
|
90
|
+
settings: {
|
|
91
|
+
...baseSettings,
|
|
92
|
+
agent: { ...baseSettings.agent, type: 'codex-cli' },
|
|
93
|
+
litellmProxy: {
|
|
94
|
+
...baseSettings.litellmProxy,
|
|
95
|
+
codexCli: { routingMode: LiteLLMProxyRoutingMode.direct },
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
export const CodexCliProxy = {
|
|
101
|
+
args: {
|
|
102
|
+
settings: {
|
|
103
|
+
...baseSettings,
|
|
104
|
+
agent: { ...baseSettings.agent, type: 'codex-cli' },
|
|
105
|
+
litellmProxy: {
|
|
106
|
+
...baseSettings.litellmProxy,
|
|
107
|
+
codexCli: { routingMode: LiteLLMProxyRoutingMode.proxy },
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
// --- Cursor (Tier 2, documentation panel) ---
|
|
113
|
+
export const CursorDocs = {
|
|
114
|
+
args: {
|
|
115
|
+
settings: {
|
|
116
|
+
...baseSettings,
|
|
117
|
+
agent: { ...baseSettings.agent, type: 'cursor' },
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
// --- Copilot CLI (Tier 2, documentation panel) ---
|
|
122
|
+
export const CopilotDocs = {
|
|
123
|
+
args: {
|
|
124
|
+
settings: {
|
|
125
|
+
...baseSettings,
|
|
126
|
+
agent: { ...baseSettings.agent, type: 'copilot-cli' },
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
// --- Unsupported agent ---
|
|
131
|
+
export const UnsupportedAgent = {
|
|
132
|
+
args: {
|
|
133
|
+
settings: {
|
|
134
|
+
...baseSettings,
|
|
135
|
+
agent: { ...baseSettings.agent, type: 'rovo-dev' },
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
};
|
package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"settings-page-client.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/settings-page-client.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;CAOiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAuBzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsB5B,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,aAAa,EAAE,KAW3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAI/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,iBAAiB,CAAC;IAEhC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,YAAY,EAEZ,cAAc,GACf,EAAE,eAAe,2CAsSjB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { usePathname } from 'next/navigation';
|
|
5
|
-
import { Home, Moon, Sun, Volume2, VolumeOff, Zap, ZapOff, Wrench, Puzzle, Blocks, Settings, } from 'lucide-react';
|
|
5
|
+
import { Home, Moon, Sun, Volume2, VolumeOff, Zap, ZapOff, Wrench, Puzzle, Blocks, ServerIcon, Settings, } from 'lucide-react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
import { Sidebar, SidebarHeader, SidebarContent, SidebarFooter, SidebarMenu, SidebarMenuItem, SidebarMenuButton, useSidebar, } from '../../ui/sidebar.js';
|
|
8
8
|
import { ScrollArea } from '../../ui/scroll-area.js';
|
|
@@ -60,7 +60,7 @@ export function AppSidebar({ features, featureFlags, onFeatureClick, }) {
|
|
|
60
60
|
.filter((g) => g.items.length > 0),
|
|
61
61
|
}));
|
|
62
62
|
}, [features, t]);
|
|
63
|
-
return (_jsxs(Sidebar, { "data-testid": "app-sidebar", "data-no-drawer-close": true, collapsible: "icon", side: i18n.dir() === 'rtl' ? 'right' : 'left', children: [_jsx(SidebarHeader, { children: _jsxs(SidebarMenu, { children: [_jsx(SidebarMenuItem, { children: _jsxs("div", { className: "flex h-10 items-center px-2 group-data-[collapsible=icon]:justify-center", children: [_jsx(ShipitAiLogo, { className: "drop-shadow-[0_0_4px_rgba(34,211,238,0.4)]", size: 32, variant: versionData.isDev ? 'dev' : 'default', isOpen: Boolean(showExpanded && expandedVisible) }), showExpanded && expandedVisible ? (_jsx(VersionBadge, { version: versionData.version, branch: versionData.branch || undefined, commitHash: versionData.commitHash || undefined, isDev: versionData.isDev, packageName: versionData.packageName, description: versionData.description, instancePath: versionData.instancePath || undefined })) : null] }) }), _jsx(SidebarNavItem, { icon: Home, label: t('navigation.controlCenter'), href: "/", active: pathname === '/' }), _jsx(SidebarNavItem, { icon: Wrench, label: t('navigation.tools'), href: "/tools", active: pathname === '/tools' }), featureFlags.skills ? (_jsx(SidebarNavItem, { icon: Puzzle, label: t('navigation.skills'), href: "/skills", active: pathname === '/skills' })) : null, featureFlags.plugins ? (_jsx(SidebarNavItem, { icon: Blocks, label: t('navigation.plugins'), href: "/plugins", active: pathname === '/plugins' })) : null, _jsx(SidebarNavItem, { icon: Settings, label: t('navigation.settings'), href: "/settings", active: pathname === '/settings' })] }) }), _jsx(SidebarContent, { children: showExpanded ? (_jsx("div", { className: [
|
|
63
|
+
return (_jsxs(Sidebar, { "data-testid": "app-sidebar", "data-no-drawer-close": true, collapsible: "icon", side: i18n.dir() === 'rtl' ? 'right' : 'left', children: [_jsx(SidebarHeader, { children: _jsxs(SidebarMenu, { children: [_jsx(SidebarMenuItem, { children: _jsxs("div", { className: "flex h-10 items-center px-2 group-data-[collapsible=icon]:justify-center", children: [_jsx(ShipitAiLogo, { className: "drop-shadow-[0_0_4px_rgba(34,211,238,0.4)]", size: 32, variant: versionData.isDev ? 'dev' : 'default', isOpen: Boolean(showExpanded && expandedVisible) }), showExpanded && expandedVisible ? (_jsx(VersionBadge, { version: versionData.version, branch: versionData.branch || undefined, commitHash: versionData.commitHash || undefined, isDev: versionData.isDev, packageName: versionData.packageName, description: versionData.description, instancePath: versionData.instancePath || undefined })) : null] }) }), _jsx(SidebarNavItem, { icon: Home, label: t('navigation.controlCenter'), href: "/", active: pathname === '/' }), _jsx(SidebarNavItem, { icon: Wrench, label: t('navigation.tools'), href: "/tools", active: pathname === '/tools' }), featureFlags.skills ? (_jsx(SidebarNavItem, { icon: Puzzle, label: t('navigation.skills'), href: "/skills", active: pathname === '/skills' })) : null, featureFlags.plugins ? (_jsx(SidebarNavItem, { icon: Blocks, label: t('navigation.plugins'), href: "/plugins", active: pathname === '/plugins' })) : null, featureFlags.mcpServers ? (_jsx(SidebarNavItem, { icon: ServerIcon, label: t('navigation.mcpServers'), href: "/mcp-servers", active: pathname === '/mcp-servers' })) : null, _jsx(SidebarNavItem, { icon: Settings, label: t('navigation.settings'), href: "/settings", active: pathname === '/settings' })] }) }), _jsx(SidebarContent, { children: showExpanded ? (_jsx("div", { className: [
|
|
64
64
|
'flex min-h-0 flex-1 flex-col overflow-hidden transition-opacity duration-200 ease-out',
|
|
65
65
|
'[&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none',
|
|
66
66
|
expandedVisible ? 'opacity-100' : 'opacity-0',
|
package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app-sidebar.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkB3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAyBjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA+DnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAIlC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAqB3B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KA6BrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAmElC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags-context.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/feature-flags-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-flags-context.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/feature-flags-context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAgB7D,UAAU,yBAAyB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,yBAAyB,2CAElF;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAEnD"}
|
|
@@ -14,6 +14,7 @@ export interface FeatureFlagsState {
|
|
|
14
14
|
gitRebaseSync: boolean;
|
|
15
15
|
reactFileManager: boolean;
|
|
16
16
|
plugins: boolean;
|
|
17
|
+
mcpServers: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare function getFeatureFlags(): Promise<FeatureFlagsState>;
|
|
19
20
|
/**
|
|
@@ -29,5 +30,6 @@ export declare const featureFlags: {
|
|
|
29
30
|
readonly gitRebaseSync: boolean;
|
|
30
31
|
readonly reactFileManager: boolean;
|
|
31
32
|
readonly plugins: boolean;
|
|
33
|
+
readonly mcpServers: boolean;
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=feature-flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/feature-flags.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAiClE;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CA4Bf,CAAC"}
|
|
@@ -20,6 +20,7 @@ const ENV_FALLBACK_FLAGS = {
|
|
|
20
20
|
gitRebaseSync: () => false,
|
|
21
21
|
reactFileManager: () => isEnabled(process.env.NEXT_PUBLIC_FLAG_REACT_FILE_MANAGER),
|
|
22
22
|
plugins: () => false,
|
|
23
|
+
mcpServers: () => false,
|
|
23
24
|
};
|
|
24
25
|
export async function getFeatureFlags() {
|
|
25
26
|
try {
|
|
@@ -36,6 +37,7 @@ export async function getFeatureFlags() {
|
|
|
36
37
|
gitRebaseSync: flags.gitRebaseSync,
|
|
37
38
|
reactFileManager: flags.reactFileManager,
|
|
38
39
|
plugins: flags.plugins,
|
|
40
|
+
mcpServers: flags.mcpServers,
|
|
39
41
|
};
|
|
40
42
|
}
|
|
41
43
|
}
|
|
@@ -51,6 +53,7 @@ export async function getFeatureFlags() {
|
|
|
51
53
|
gitRebaseSync: ENV_FALLBACK_FLAGS.gitRebaseSync(),
|
|
52
54
|
reactFileManager: ENV_FALLBACK_FLAGS.reactFileManager(),
|
|
53
55
|
plugins: ENV_FALLBACK_FLAGS.plugins(),
|
|
56
|
+
mcpServers: ENV_FALLBACK_FLAGS.mcpServers(),
|
|
54
57
|
};
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
@@ -82,4 +85,7 @@ export const featureFlags = {
|
|
|
82
85
|
get plugins() {
|
|
83
86
|
return ENV_FALLBACK_FLAGS.plugins();
|
|
84
87
|
},
|
|
88
|
+
get mcpServers() {
|
|
89
|
+
return ENV_FALLBACK_FLAGS.mcpServers();
|
|
90
|
+
},
|
|
85
91
|
};
|
|
@@ -212,7 +212,9 @@
|
|
|
212
212
|
"reactFileManagerDescription": "استخدام مدير ملفات React المدمج بدلاً من منتقي مجلدات نظام التشغيل الأصلي",
|
|
213
213
|
"plugins": "Plugins Marketplace",
|
|
214
214
|
"pluginsDescription": "Enable the Claude Code plugins marketplace browser",
|
|
215
|
-
"hint": "ميزات تجريبية لا تزال قيد التطوير. قم بتمكينها على مسؤوليتك — قد تتغير أو تُزال في الإصدارات المستقبلية. وضع التصحيح يضيف تسجيلًا مفصلاً مفيدًا لاستكشاف الأخطاء."
|
|
215
|
+
"hint": "ميزات تجريبية لا تزال قيد التطوير. قم بتمكينها على مسؤوليتك — قد تتغير أو تُزال في الإصدارات المستقبلية. وضع التصحيح يضيف تسجيلًا مفصلاً مفيدًا لاستكشاف الأخطاء.",
|
|
216
|
+
"mcpServers": "MCP Servers",
|
|
217
|
+
"mcpServersDescription": "Enable the MCP servers browser for viewing LiteLLM proxy MCP servers"
|
|
216
218
|
},
|
|
217
219
|
"litellmProxy": {
|
|
218
220
|
"title": "LiteLLM Proxy",
|
|
@@ -242,7 +244,12 @@
|
|
|
242
244
|
"sonnetModel": "Sonnet Model Override",
|
|
243
245
|
"haikuModel": "Haiku Model Override",
|
|
244
246
|
"opusModel": "Opus Model Override",
|
|
245
|
-
"modelOverrideDescription": "Override the default model routed through LiteLLM"
|
|
247
|
+
"modelOverrideDescription": "Override the default model routed through LiteLLM",
|
|
248
|
+
"notSupported": "Proxy routing is not supported for this agent type.",
|
|
249
|
+
"cursorInstructions": "Cursor Setup Instructions",
|
|
250
|
+
"cursorDescription": "Add these values to Cursor Settings > Models > Override OpenAI Base URL and API Key. Only Ask and Plan modes support custom API keys — Agent mode does not.",
|
|
251
|
+
"copilotInstructions": "GitHub Copilot Setup Instructions",
|
|
252
|
+
"copilotDescription": "Add this to your VS Code settings.json under github.copilot.advanced: { \"debug.overrideProxyUrl\": \"<url>\", \"debug.testOverrideProxyUrl\": \"<url>\" }. These are undocumented debug settings."
|
|
246
253
|
}
|
|
247
254
|
},
|
|
248
255
|
"interactiveAgent": {
|
|
@@ -286,7 +293,8 @@
|
|
|
286
293
|
"sessions": "الجلسات",
|
|
287
294
|
"tools": "الأدوات",
|
|
288
295
|
"skills": "المهارات",
|
|
289
|
-
"plugins": "Plugins"
|
|
296
|
+
"plugins": "Plugins",
|
|
297
|
+
"mcpServers": "MCP Servers"
|
|
290
298
|
},
|
|
291
299
|
"sidebar": {
|
|
292
300
|
"features": "الميزات",
|
|
@@ -308,7 +316,7 @@
|
|
|
308
316
|
"deleteSubFeatures": "حذف الميزات الفرعية",
|
|
309
317
|
"closePullRequest": "إغلاق طلب السحب",
|
|
310
318
|
"cancel": "إلغاء",
|
|
311
|
-
"deleting": "جارٍ
|
|
319
|
+
"deleting": "جارٍ الحذف…",
|
|
312
320
|
"delete": "حذف"
|
|
313
321
|
},
|
|
314
322
|
"rejectFeedback": {
|
|
@@ -317,23 +325,23 @@
|
|
|
317
325
|
"ariaLabel": "ملاحظات الرفض",
|
|
318
326
|
"placeholder": "صِف ما يحتاج إلى تغيير...",
|
|
319
327
|
"cancel": "إلغاء",
|
|
320
|
-
"rejecting": "جارٍ
|
|
328
|
+
"rejecting": "جارٍ الرفض…",
|
|
321
329
|
"confirmReject": "تأكيد الرفض"
|
|
322
330
|
},
|
|
323
331
|
"emptyState": {
|
|
324
332
|
"addProject": "إضافة مشروع",
|
|
325
333
|
"addProjectDescription": "أضف مجلد مشروعك لفتح إمكانية إنشاء الميزات.",
|
|
326
|
-
"addProjectDescriptionLine2": "صِف ما تحتاجه
|
|
327
|
-
"checkingSetup": "جارٍ التحقق من
|
|
334
|
+
"addProjectDescriptionLine2": "صِف ما تحتاجه — ShipIT AI يتولى الباقي.",
|
|
335
|
+
"checkingSetup": "جارٍ التحقق من الإعداد…",
|
|
328
336
|
"ready": "{{label}} جاهز",
|
|
329
337
|
"notInstalled": "{{label}} غير مثبت",
|
|
330
338
|
"reCheck": "إعادة التحقق",
|
|
331
339
|
"needsAuth": "{{label}} يحتاج إلى مصادقة",
|
|
332
340
|
"open": "فتح {{label}}",
|
|
333
|
-
"checking": "جارٍ التحقق من {{label}}
|
|
341
|
+
"checking": "جارٍ التحقق من {{label}}…",
|
|
334
342
|
"notFound": "{{label}} غير موجود",
|
|
335
343
|
"docs": "التوثيق",
|
|
336
|
-
"opening": "جارٍ
|
|
344
|
+
"opening": "جارٍ الفتح…",
|
|
337
345
|
"chooseFolder": "اختر مجلدًا",
|
|
338
346
|
"folderHint": "أي مجلد يعمل — سيتم تهيئة git تلقائيًا إذا لزم الأمر.",
|
|
339
347
|
"orUseCli": "أو استخدم CLI",
|
|
@@ -344,7 +352,7 @@
|
|
|
344
352
|
"githubCliRequired": "مطلوب لطلبات السحب"
|
|
345
353
|
},
|
|
346
354
|
"welcome": {
|
|
347
|
-
"loadingAgents": "جارٍ تحميل
|
|
355
|
+
"loadingAgents": "جارٍ تحميل الوكلاء…",
|
|
348
356
|
"chooseAgent": "اختر وكيلك",
|
|
349
357
|
"pickModel": "اختر نموذجًا",
|
|
350
358
|
"selectAgentSubtitle": "اختر وكيل البرمجة بالذكاء الاصطناعي الذي تريد أن يستخدمه ShipIT AI.",
|
|
@@ -392,11 +400,11 @@
|
|
|
392
400
|
"stopDevServer": "إيقاف الخادم",
|
|
393
401
|
"startDevServer": "تشغيل الخادم",
|
|
394
402
|
"retryDevServer": "إعادة تشغيل الخادم",
|
|
395
|
-
"starting": "جارٍ
|
|
403
|
+
"starting": "جارٍ التشغيل…",
|
|
396
404
|
"retry": "إعادة المحاولة",
|
|
397
405
|
"start": "تشغيل",
|
|
398
406
|
"failed": "فشل",
|
|
399
|
-
"deleting": "جارٍ
|
|
407
|
+
"deleting": "جارٍ الحذف…",
|
|
400
408
|
"addFeature": "إضافة ميزة",
|
|
401
409
|
"reviewRequirements": "مراجعة المتطلبات",
|
|
402
410
|
"reviewTechnicalPlan": "مراجعة الخطة التقنية",
|
|
@@ -631,7 +639,7 @@
|
|
|
631
639
|
"addRepository": "إضافة مستودع"
|
|
632
640
|
},
|
|
633
641
|
"modelPicker": {
|
|
634
|
-
"searchPlaceholder": "البحث أو كتابة معرف
|
|
642
|
+
"searchPlaceholder": "البحث أو كتابة معرف النموذج…"
|
|
635
643
|
},
|
|
636
644
|
"skills": {
|
|
637
645
|
"searchPlaceholder": "البحث عن مهارات..."
|
|
@@ -674,5 +682,39 @@
|
|
|
674
682
|
"card": {
|
|
675
683
|
"permissionOverride": "الإذن: {{mode}}"
|
|
676
684
|
}
|
|
685
|
+
},
|
|
686
|
+
"mcpServers": {
|
|
687
|
+
"title": "MCP Servers",
|
|
688
|
+
"subtitle": "Browse MCP servers deployed on your LiteLLM proxy",
|
|
689
|
+
"noProxy": "No LiteLLM proxy configured. Add a proxy URL in Settings to browse MCP servers.",
|
|
690
|
+
"noServers": "No MCP servers found",
|
|
691
|
+
"noResults": "No servers match your search",
|
|
692
|
+
"searchPlaceholder": "Search servers...",
|
|
693
|
+
"filter": {
|
|
694
|
+
"all": "All"
|
|
695
|
+
},
|
|
696
|
+
"transport": {
|
|
697
|
+
"http": "HTTP",
|
|
698
|
+
"sse": "SSE",
|
|
699
|
+
"stdio": "STDIO"
|
|
700
|
+
},
|
|
701
|
+
"authType": {
|
|
702
|
+
"api_key": "API Key",
|
|
703
|
+
"bearer_token": "Bearer Token",
|
|
704
|
+
"basic": "Basic",
|
|
705
|
+
"oauth2": "OAuth2",
|
|
706
|
+
"aws_sigv4": "AWS SigV4"
|
|
707
|
+
},
|
|
708
|
+
"detail": {
|
|
709
|
+
"serverName": "Server Name",
|
|
710
|
+
"url": "URL",
|
|
711
|
+
"transport": "Transport",
|
|
712
|
+
"authType": "Auth Type"
|
|
713
|
+
},
|
|
714
|
+
"tools": {
|
|
715
|
+
"title": "Available Tools",
|
|
716
|
+
"noTools": "No tools available",
|
|
717
|
+
"other": "Other"
|
|
718
|
+
}
|
|
677
719
|
}
|
|
678
720
|
}
|