feat: available for disabling marketplace(offline env)

This commit is contained in:
Junyan Qin
2025-08-28 23:04:21 +08:00
parent d7fc5283f7
commit 91959527a4
5 changed files with 21 additions and 12 deletions

View File

@@ -14,6 +14,7 @@ class SystemRouterGroup(group.RouterGroup):
'version': constants.semantic_version,
'debug': constants.debug_mode,
'enabled_platform_count': len(self.ap.platform_mgr.get_running_adapters()),
'enable_marketplace': self.ap.instance_config.data['plugin'].get('enable_marketplace', True),
'cloud_service_url': (
self.ap.instance_config.data['plugin']['cloud_service_url']
if 'cloud_service_url' in self.ap.instance_config.data['plugin']

View File

@@ -21,4 +21,5 @@ system:
secret: ''
plugin:
runtime_ws_url: 'ws://langbot_plugin_runtime:5400/control/ws'
enable_marketplace: true
cloud_service_url: 'https://space.langbot.app'

View File

@@ -33,6 +33,7 @@ import { httpClient } from '@/app/infra/http/HttpClient';
import { toast } from 'sonner';
import { useTranslation } from 'react-i18next';
import { PluginV4 } from '@/app/infra/entities/plugin';
import { systemInfo } from '@/app/infra/http/HttpClient';
enum PluginInstallStatus {
WAIT_INPUT = 'wait_input',
@@ -213,9 +214,11 @@ export default function PluginConfigPage() {
<TabsTrigger value="installed" className="px-6 py-4 cursor-pointer">
{t('plugins.installed')}
</TabsTrigger>
<TabsTrigger value="market" className="px-6 py-4 cursor-pointer">
{t('plugins.marketplace')}
</TabsTrigger>
{systemInfo.enable_marketplace && (
<TabsTrigger value="market" className="px-6 py-4 cursor-pointer">
{t('plugins.marketplace')}
</TabsTrigger>
)}
</TabsList>
<div className="flex flex-row justify-end items-center">
@@ -241,14 +244,16 @@ export default function PluginConfigPage() {
<UploadIcon className="w-4 h-4" />
{t('plugins.uploadLocal')}
</DropdownMenuItem>
<DropdownMenuItem
onClick={() => {
setActiveTab('market');
}}
>
<StoreIcon className="w-4 h-4" />
{t('plugins.marketplace')}
</DropdownMenuItem>
{systemInfo.enable_marketplace && (
<DropdownMenuItem
onClick={() => {
setActiveTab('market');
}}
>
<StoreIcon className="w-4 h-4" />
{t('plugins.marketplace')}
</DropdownMenuItem>
)}
</DropdownMenuContent>
</DropdownMenu>
</div>

View File

@@ -212,6 +212,7 @@ export interface ApiRespSystemInfo {
debug: boolean;
version: string;
cloud_service_url: string;
enable_marketplace: boolean;
}
export interface ApiRespAsyncTasks {

View File

@@ -6,6 +6,7 @@ import { ApiRespSystemInfo } from '@/app/infra/entities/api';
export let systemInfo: ApiRespSystemInfo = {
debug: false,
version: '',
enable_marketplace: true,
cloud_service_url: '',
};