Compare commits

..

1 Commits

27 changed files with 5 additions and 315 deletions

View File

@ -578,25 +578,6 @@ class PluginUpgradeFromGithubApi(Resource):
raise ValueError(e)
@console_ns.route("/workspaces/current/plugin/upgrade/batch")
class PluginBatchUpgradeApi(Resource):
@setup_required
@login_required
@account_initialization_required
@plugin_permission_required(install_required=True)
def post(self):
"""
Batch upgrade all marketplace plugins that have updates available
"""
_, tenant_id = current_account_with_tenant()
try:
result = PluginService.batch_upgrade_plugins_from_marketplace(tenant_id)
return jsonable_encoder(result)
except PluginDaemonClientSideError as e:
raise ValueError(e)
@console_ns.route("/workspaces/current/plugin/uninstall")
class PluginUninstallApi(Resource):
@console_ns.expect(console_ns.models[ParserUninstall.__name__])

View File

@ -1,10 +1,6 @@
from __future__ import annotations
import builtins
import logging
from collections.abc import Mapping, Sequence
from mimetypes import guess_type
from typing import Any
from pydantic import BaseModel
from sqlalchemy import select
@ -341,91 +337,6 @@ class PluginService:
},
)
@staticmethod
def batch_upgrade_plugins_from_marketplace(tenant_id: str) -> dict[str, builtins.list[dict[str, Any]]]:
"""
Batch upgrade all marketplace plugins that have updates available
Returns a dict with:
- success: list of successfully upgraded plugins
- failed: list of failed upgrades with error messages
- skipped: list of plugins skipped (no updates or errors)
"""
if not dify_config.MARKETPLACE_ENABLED:
raise ValueError("marketplace is not enabled")
manager = PluginInstaller()
result: dict[str, builtins.list[dict[str, Any]]] = {
"success": [],
"failed": [],
"skipped": [],
}
# Get all installed plugins
plugins = manager.list_plugins(tenant_id)
# Filter marketplace plugins only
marketplace_plugins = [plugin for plugin in plugins if plugin.source == PluginInstallationSource.Marketplace]
if not marketplace_plugins:
return result
# Get latest versions for all marketplace plugins
plugin_ids = [plugin.plugin_id for plugin in marketplace_plugins]
latest_versions = PluginService.fetch_latest_plugin_version(plugin_ids)
# Upgrade each plugin if newer version is available
for plugin in marketplace_plugins:
try:
latest_info = latest_versions.get(plugin.plugin_id)
if not latest_info:
result["skipped"].append(
{
"plugin_id": plugin.plugin_id,
"reason": "no_update_info",
"current_version": plugin.version,
}
)
continue
# Check if update is needed
if latest_info.version == plugin.version:
result["skipped"].append(
{
"plugin_id": plugin.plugin_id,
"reason": "already_latest",
"current_version": plugin.version,
}
)
continue
# Perform upgrade
PluginService.upgrade_plugin_with_marketplace(
tenant_id, plugin.plugin_unique_identifier, latest_info.unique_identifier
)
result["success"].append(
{
"plugin_id": plugin.plugin_id,
"from_version": plugin.version,
"to_version": latest_info.version,
"from_identifier": plugin.plugin_unique_identifier,
"to_identifier": latest_info.unique_identifier,
}
)
except Exception as e:
logger.exception("Failed to upgrade plugin %s", plugin.plugin_id)
result["failed"].append(
{
"plugin_id": plugin.plugin_id,
"current_version": plugin.version,
"error": str(e),
}
)
return result
@staticmethod
def upload_pkg(tenant_id: str, pkg: bytes, verify_signature: bool = False) -> PluginDecodeResponse:
"""

View File

@ -194,11 +194,11 @@ const ConfigContent: FC<Props> = ({
</div>
{type === RETRIEVE_TYPE.multiWay && (
<>
<div className="my-2 flex h-6 items-center py-1">
<div className="system-xs-semibold-uppercase mr-2 shrink-0 text-text-secondary">
<div className="my-2 flex flex-col items-center py-1">
<div className="system-xs-semibold-uppercase mb-2 mr-2 shrink-0 text-text-secondary">
{t('rerankSettings', { ns: 'dataset' })}
</div>
<Divider bgStyle="gradient" className="mx-0 !h-px" />
<Divider bgStyle="gradient" className="m-0 !h-px" />
</div>
{
selectedDatasetsMode.inconsistentEmbeddingModel

View File

@ -5,16 +5,14 @@ import {
RiBookOpenLine,
RiDragDropLine,
RiEqualizer2Line,
RiRefreshLine,
} from '@remixicon/react'
import { useBoolean } from 'ahooks'
import { noop } from 'es-toolkit/function'
import Link from 'next/link'
import { useCallback, useEffect, useMemo, useState } from 'react'
import { useEffect, useMemo, useState } from 'react'
import { useTranslation } from 'react-i18next'
import Button from '@/app/components/base/button'
import TabSlider from '@/app/components/base/tab-slider'
import { useToastContext } from '@/app/components/base/toast'
import Tooltip from '@/app/components/base/tooltip'
import ReferenceSettingModal from '@/app/components/plugins/reference-setting-modal'
import { MARKETPLACE_API_PREFIX, SUPPORT_INSTALL_LOCAL_FILE_EXTENSIONS } from '@/config'
@ -22,8 +20,7 @@ import { useGlobalPublicStore } from '@/context/global-public-context'
import { useDocLink } from '@/context/i18n'
import useDocumentTitle from '@/hooks/use-document-title'
import { usePluginInstallation } from '@/hooks/use-query-params'
import { batchUpgradePlugins, fetchBundleInfoFromMarketPlace, fetchManifestFromMarketPlace } from '@/service/plugins'
import { useInvalidateInstalledPluginList } from '@/service/use-plugins'
import { fetchBundleInfoFromMarketPlace, fetchManifestFromMarketPlace } from '@/service/plugins'
import { sleep } from '@/utils'
import { cn } from '@/utils/classnames'
import { PLUGIN_PAGE_TABS_MAP } from '../hooks'
@ -51,8 +48,6 @@ const PluginPage = ({
const { t } = useTranslation()
const docLink = useDocLink()
useDocumentTitle(t('metadata.title', { ns: 'plugin' }))
const { notify } = useToastContext()
const invalidateInstalledPluginList = useInvalidateInstalledPluginList()
// Use nuqs hook for installation state
const [{ packageId, bundleInfo }, setInstallState] = usePluginInstallation()
@ -65,9 +60,6 @@ const PluginPage = ({
setFalse: doHideInstallFromMarketplace,
}] = useBoolean(false)
const [isBatchUpgrading, setIsBatchUpgrading] = useState(false)
const [showBatchUpgradeTooltip, setShowBatchUpgradeTooltip] = useState(true)
const hideInstallFromMarketplace = () => {
doHideInstallFromMarketplace()
setInstallState(null)
@ -142,45 +134,6 @@ const PluginPage = ({
enabled: isPluginsTab && canManagement,
})
const handleBatchUpgrade = useCallback(async () => {
// Hide tooltip immediately when clicked
setShowBatchUpgradeTooltip(false)
setIsBatchUpgrading(true)
try {
const result = await batchUpgradePlugins()
const { success, failed, skipped } = result
// If there are updates (success or failed), show submitted message
if (success.length > 0 || failed.length > 0) {
notify({
type: 'success',
message: t('batchUpgrade.submittedMessage', { ns: 'plugin' }),
})
}
// If all plugins are already up to date (only skipped)
else if (skipped.length > 0) {
notify({
type: 'info',
message: t('batchUpgrade.noUpdatesMessage', { ns: 'plugin' }),
})
}
invalidateInstalledPluginList()
}
catch (error) {
console.error('Failed to batch upgrade plugins:', error)
notify({
type: 'error',
message: t('batchUpgrade.errorMessage', { ns: 'plugin' }),
})
}
finally {
setIsBatchUpgrading(false)
// Re-enable tooltip after a short delay
setTimeout(() => setShowBatchUpgradeTooltip(true), 500)
}
}, [t, notify, invalidateInstalledPluginList])
const { dragging, fileUploader, fileChangeHandle, removeFile } = uploaderProps
return (
<div
@ -236,27 +189,6 @@ const PluginPage = ({
</>
)
}
{
isPluginsTab && canManagement && (
<>
<Tooltip
popupContent={t('batchUpgrade.tooltip', { ns: 'plugin' })}
disabled={!showBatchUpgradeTooltip}
>
<Button
variant="secondary-accent"
className="px-3"
onClick={handleBatchUpgrade}
disabled={isBatchUpgrading}
>
<RiRefreshLine className={cn('mr-1 h-4 w-4', isBatchUpgrading && 'animate-spin')} />
{t('batchUpgrade.button', { ns: 'plugin' })}
</Button>
</Tooltip>
<div className="mx-1 h-3.5 w-[1px] shrink-0 bg-divider-regular"></div>
</>
)
}
<PluginTasks />
{canManagement && (
<InstallPluginDropdown

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "المحدد فقط",
"autoUpdate.upgradeModePlaceholder.exclude": "لن يتم تحديث الإضافات المحددة تلقائيًا",
"autoUpdate.upgradeModePlaceholder.partial": "سيتم تحديث الإضافات المحددة فقط تلقائيًا. لم يتم تحديد أي إضافات حاليًا، لذلك لن يتم تحديث أي إضافات تلقائيًا.",
"batchUpgrade.button": "تحديث الكل",
"batchUpgrade.errorMessage": "فشل إرسال مهمة تحديث البرنامج المساعد. يرجى المحاولة مرة أخرى",
"batchUpgrade.noUpdatesMessage": "جميع البرامج المساعدة محدثة",
"batchUpgrade.submittedMessage": "تم إرسال مهمة تحديث البرنامج المساعد",
"batchUpgrade.tooltip": "تحديث جميع البرامج المساعدة المثبتة من Marketplace إلى أحدث إصدار",
"category.agents": "استراتيجيات الوكيل",
"category.all": "الكل",
"category.bundles": "حزم",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Nur ausgewählt",
"autoUpdate.upgradeModePlaceholder.exclude": "Ausgewählte Plugins werden nicht automatisch aktualisiert",
"autoUpdate.upgradeModePlaceholder.partial": "Nur ausgewählte Plugins werden automatisch aktualisiert. Derzeit sind keine Plugins ausgewählt, daher werden keine Plugins automatisch aktualisiert.",
"batchUpgrade.button": "Alle aktualisieren",
"batchUpgrade.errorMessage": "Fehler beim Senden der Plugin-Aktualisierungsaufgabe. Bitte erneut versuchen",
"batchUpgrade.noUpdatesMessage": "Alle Plugins sind auf dem neuesten Stand",
"batchUpgrade.submittedMessage": "Plugin-Aktualisierungsaufgabe eingereicht",
"batchUpgrade.tooltip": "Alle vom Marketplace installierten Plugins auf die neueste Version aktualisieren",
"category.agents": "Agenten-Strategien",
"category.all": "Alle",
"category.bundles": "Bündel",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Only selected",
"autoUpdate.upgradeModePlaceholder.exclude": "Selected plugins will not auto-update",
"autoUpdate.upgradeModePlaceholder.partial": "Only selected plugins will auto-update. No plugins are currently selected, so no plugins will auto-update.",
"batchUpgrade.button": "Update All",
"batchUpgrade.errorMessage": "Failed to submit plugin update task. Please try again.",
"batchUpgrade.noUpdatesMessage": "All plugins are up to date",
"batchUpgrade.submittedMessage": "Plugin update task submitted",
"batchUpgrade.tooltip": "Update all plugins installed from Marketplace to the latest version",
"category.agents": "Agent Strategies",
"category.all": "All",
"category.bundles": "Bundles",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Solo seleccionado",
"autoUpdate.upgradeModePlaceholder.exclude": "Los plugins seleccionados no se actualizarán automáticamente",
"autoUpdate.upgradeModePlaceholder.partial": "Solo los plugins seleccionados se actualizarán automáticamente. Actualmente no hay plugins seleccionados, por lo que no se actualizarán automáticamente.",
"batchUpgrade.button": "Actualizar todo",
"batchUpgrade.errorMessage": "Error al enviar la tarea de actualización del plugin. Por favor, inténtelo de nuevo",
"batchUpgrade.noUpdatesMessage": "Todos los plugins están actualizados",
"batchUpgrade.submittedMessage": "Tarea de actualización de plugin enviada",
"batchUpgrade.tooltip": "Actualizar todos los plugins instalados desde Marketplace a la última versión",
"category.agents": "Estrategias de los agentes",
"category.all": "Todo",
"category.bundles": "Paquetes",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "فقط انتخاب شده",
"autoUpdate.upgradeModePlaceholder.exclude": "افزونه‌های انتخاب شده به‌صورت خودکار به‌روزرسانی نخواهند شد",
"autoUpdate.upgradeModePlaceholder.partial": "فقط پلاگین‌های انتخاب شده به‌روزرسانی خودکار خواهند داشت. در حال حاضر هیچ پلاگینی انتخاب نشده است، بنابراین هیچ پلاگینی به‌روزرسانی خودکار نخواهد شد.",
"batchUpgrade.button": "به‌روزرسانی همه",
"batchUpgrade.errorMessage": "ارسال وظیفه به‌روزرسانی افزونه ناموفق بود. لطفاً دوباره امتحان کنید",
"batchUpgrade.noUpdatesMessage": "همه افزونه‌ها به‌روز هستند",
"batchUpgrade.submittedMessage": "وظیفه به‌روزرسانی افزونه ارسال شد",
"batchUpgrade.tooltip": "به‌روزرسانی همه افزونه‌های نصب شده از Marketplace به آخرین نسخه",
"category.agents": "استراتژی های عامل",
"category.all": "همه",
"category.bundles": "بسته",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Seulement sélectionné",
"autoUpdate.upgradeModePlaceholder.exclude": "Les plugins sélectionnés ne se mettront pas à jour automatiquement.",
"autoUpdate.upgradeModePlaceholder.partial": "Seuls les plugins sélectionnés se mettront à jour automatiquement. Aucun plugin n'est actuellement sélectionné, donc aucun plugin ne se mettra à jour automatiquement.",
"batchUpgrade.button": "Tout mettre à jour",
"batchUpgrade.errorMessage": "Échec de la soumission de la tâche de mise à jour du plugin. Veuillez réessayer",
"batchUpgrade.noUpdatesMessage": "Tous les plugins sont à jour",
"batchUpgrade.submittedMessage": "Tâche de mise à jour du plugin soumise",
"batchUpgrade.tooltip": "Mettre à jour tous les plugins installés depuis Marketplace vers la dernière version",
"category.agents": "Stratégies des agents",
"category.all": "Tout",
"category.bundles": "Paquets",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "केवल चयनित",
"autoUpdate.upgradeModePlaceholder.exclude": "चुने हुए प्लगइन्स अपने आप अपडेट नहीं होंगे",
"autoUpdate.upgradeModePlaceholder.partial": "केवल चयनित प्लगइन्स स्वतः अपडेट होंगे। वर्तमान में कोई प्लगइन चयनित नहीं है, इसलिए कोई प्लगइन स्वतः अपडेट नहीं होगा।",
"batchUpgrade.button": "सभी को अपडेट करें",
"batchUpgrade.errorMessage": "प्लगइन अपडेट कार्य सबमिट करने में विफल। कृपया पुनः प्रयास करें",
"batchUpgrade.noUpdatesMessage": "सभी प्लगइन्स नवीनतम हैं",
"batchUpgrade.submittedMessage": "प्लगइन अपडेट कार्य सबमिट किया गया",
"batchUpgrade.tooltip": "Marketplace से इंस्टॉल किए गए सभी प्लगइन्स को नवीनतम संस्करण में अपडेट करें",
"category.agents": "एजेंट रणनीतियाँ",
"category.all": "सभी",
"category.bundles": "बंडल",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Hanya dipilih",
"autoUpdate.upgradeModePlaceholder.exclude": "Plugin yang dipilih tidak akan diperbarui secara otomatis",
"autoUpdate.upgradeModePlaceholder.partial": "Hanya plugin yang dipilih yang akan diperbarui secara otomatis. Saat ini tidak ada plugin yang dipilih, jadi tidak ada plugin yang akan diperbarui secara otomatis.",
"batchUpgrade.button": "Perbarui semua",
"batchUpgrade.errorMessage": "Gagal mengirim tugas pembaruan plugin. Silakan coba lagi",
"batchUpgrade.noUpdatesMessage": "Semua plugin sudah terbaru",
"batchUpgrade.submittedMessage": "Tugas pembaruan plugin telah dikirim",
"batchUpgrade.tooltip": "Perbarui semua plugin yang diinstal dari Marketplace ke versi terbaru",
"category.agents": "Strategi Agen",
"category.all": "Semua",
"category.bundles": "Bundel",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Solo selezionati",
"autoUpdate.upgradeModePlaceholder.exclude": "I plugin selezionati non verranno aggiornati automaticamente",
"autoUpdate.upgradeModePlaceholder.partial": "Solo i plugin selezionati si aggiorneranno automaticamente. Attualmente non ci sono plugin selezionati, quindi nessun plugin si aggiornerà automaticamente.",
"batchUpgrade.button": "Aggiorna tutto",
"batchUpgrade.errorMessage": "Invio dell'attività di aggiornamento del plugin non riuscito. Riprova",
"batchUpgrade.noUpdatesMessage": "Tutti i plugin sono aggiornati",
"batchUpgrade.submittedMessage": "Attività di aggiornamento plugin inviata",
"batchUpgrade.tooltip": "Aggiorna tutti i plugin installati da Marketplace all'ultima versione",
"category.agents": "Strategie degli agenti",
"category.all": "Tutto",
"category.bundles": "Pacchetti",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "選択されたもののみ",
"autoUpdate.upgradeModePlaceholder.exclude": "選択されたプラグインは自動更新されません",
"autoUpdate.upgradeModePlaceholder.partial": "選択されたプラグインのみが自動更新されます。現在選択されているプラグインはないため、プラグインは自動更新されません。",
"batchUpgrade.button": "すべて更新",
"batchUpgrade.errorMessage": "プラグイン更新タスクの送信に失敗しました。もう一度お試しください",
"batchUpgrade.noUpdatesMessage": "すべてのプラグインは最新です",
"batchUpgrade.submittedMessage": "プラグイン更新タスクを送信しました",
"batchUpgrade.tooltip": "Marketplaceからインストールされたすべてのプラグインを最新バージョンに更新",
"category.agents": "エージェント戦略",
"category.all": "すべて",
"category.bundles": "バンドル",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "선택된 것만",
"autoUpdate.upgradeModePlaceholder.exclude": "선택한 플러그인은 자동으로 업데이트되지 않습니다.",
"autoUpdate.upgradeModePlaceholder.partial": "선택된 플러그인만 자동 업데이트됩니다. 현재 선택된 플러그인이 없으므로 자동 업데이트되는 플러그인은 없습니다.",
"batchUpgrade.button": "모두 업데이트",
"batchUpgrade.errorMessage": "플러그인 업데이트 작업 제출 실패. 다시 시도하세요",
"batchUpgrade.noUpdatesMessage": "모든 플러그인이 최신 버전입니다",
"batchUpgrade.submittedMessage": "플러그인 업데이트 작업을 제출했습니다",
"batchUpgrade.tooltip": "Marketplace에서 설치된 모든 플러그인을 최신 버전으로 업데이트",
"category.agents": "에이전트 전략",
"category.all": "모두",
"category.bundles": "번들",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Tylko wybrane",
"autoUpdate.upgradeModePlaceholder.exclude": "Wybrane wtyczki nie będą aktualizować się automatycznie.",
"autoUpdate.upgradeModePlaceholder.partial": "Tylko wybrane wtyczki będą się aktualizować automatycznie. Obecnie nie wybrano żadnych wtyczek, więc żadna wtyczka nie będzie się automatycznie aktualizować.",
"batchUpgrade.button": "Aktualizuj wszystko",
"batchUpgrade.errorMessage": "Nie udało się przesłać zadania aktualizacji wtyczki. Spróbuj ponownie",
"batchUpgrade.noUpdatesMessage": "Wszystkie wtyczki są aktualne",
"batchUpgrade.submittedMessage": "Przesłano zadanie aktualizacji wtyczki",
"batchUpgrade.tooltip": "Zaktualizuj wszystkie wtyczki zainstalowane z Marketplace do najnowszej wersji",
"category.agents": "Strategie agentów",
"category.all": "Cały",
"category.bundles": "Wiązki",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Somente selecionado",
"autoUpdate.upgradeModePlaceholder.exclude": "Plugins selecionados não serão atualizados automaticamente",
"autoUpdate.upgradeModePlaceholder.partial": "Apenas plugins selecionados serão atualizados automaticamente. Nenhum plugin está atualmente selecionado, então nenhum plugin será atualizado automaticamente.",
"batchUpgrade.button": "Atualizar tudo",
"batchUpgrade.errorMessage": "Falha ao enviar tarefa de atualização de plugin. Por favor, tente novamente",
"batchUpgrade.noUpdatesMessage": "Todos os plugins estão atualizados",
"batchUpgrade.submittedMessage": "Tarefa de atualização de plugin enviada",
"batchUpgrade.tooltip": "Atualizar todos os plugins instalados do Marketplace para a versão mais recente",
"category.agents": "Estratégias do agente",
"category.all": "Todo",
"category.bundles": "Pacotes",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Numai selectat",
"autoUpdate.upgradeModePlaceholder.exclude": "Pluginurile selectate nu se vor actualiza automat.",
"autoUpdate.upgradeModePlaceholder.partial": "Numai pluginurile selectate se vor actualiza automat. Nu există pluginuri selectate în prezent, așa că niciun plugin nu se va actualiza automat.",
"batchUpgrade.button": "Actualizează tot",
"batchUpgrade.errorMessage": "Trimiterea sarcinii de actualizare a pluginului a eșuat. Vă rugăm să încercați din nou",
"batchUpgrade.noUpdatesMessage": "Toate pluginurile sunt actualizate",
"batchUpgrade.submittedMessage": "Sarcina de actualizare a pluginului a fost trimisă",
"batchUpgrade.tooltip": "Actualizați toate pluginurile instalate din Marketplace la cea mai recentă versiune",
"category.agents": "Strategii pentru agenți",
"category.all": "Tot",
"category.bundles": "Pachete",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Только выбрано",
"autoUpdate.upgradeModePlaceholder.exclude": "Выбранные плагины не будут обновляться автоматически",
"autoUpdate.upgradeModePlaceholder.partial": "Только выбранные плагины будут автоматически обновляться. В данный момент плагины не выбраны, поэтому никакие плагины не будут автоматически обновляться.",
"batchUpgrade.button": "Обновить все",
"batchUpgrade.errorMessage": "Не удалось отправить задачу обновления плагина. Попробуйте снова",
"batchUpgrade.noUpdatesMessage": "Все плагины обновлены",
"batchUpgrade.submittedMessage": "Задача обновления плагина отправлена",
"batchUpgrade.tooltip": "Обновить все плагины, установленные из Marketplace, до последней версии",
"category.agents": "Агентские стратегии",
"category.all": "Все",
"category.bundles": "Пакеты",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Samo izbrano",
"autoUpdate.upgradeModePlaceholder.exclude": "Izbrani vtičniki se ne bodo samodejno posodabljali.",
"autoUpdate.upgradeModePlaceholder.partial": "Samo izbrani vtičniki se bodo samodejno posodabljali. Trenutno ni izbranih nobenih vtičnikov, zato se nobeni vtičniki ne bodo samodejno posodobili.",
"batchUpgrade.button": "Posodobi vse",
"batchUpgrade.errorMessage": "Pošiljanje naloge za posodobitev vtičnika ni uspelo. Prosimo, poskusite znova",
"batchUpgrade.noUpdatesMessage": "Vsi vtičniki so posodobljeni",
"batchUpgrade.submittedMessage": "Naloga za posodobitev vtičnika je bila poslana",
"batchUpgrade.tooltip": "Posodobi vse vtičnike, nameščene iz Marketplace, na najnovejšo različico",
"category.agents": "Strategije agenta",
"category.all": "Vse",
"category.bundles": "Paketi",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "เฉพาะที่เลือกไว้",
"autoUpdate.upgradeModePlaceholder.exclude": "ปลั๊กอินที่เลือกจะไม่อัปเดตอัตโนมัติ",
"autoUpdate.upgradeModePlaceholder.partial": "เฉพาะปลั๊กอินที่เลือกจะอัปเดตโดยอัตโนมัติ ขณะนี้ไม่มีปลั๊กอินใดที่ถูกเลือก ดังนั้นจะไม่มีปลั๊กอินใดที่อัปเดตโดยอัตโนมัติ",
"batchUpgrade.button": "อัปเดตทั้งหมด",
"batchUpgrade.errorMessage": "ส่งงานอัปเดตปลั๊กอินล้มเหลว กรุณาลองอีกครั้ง",
"batchUpgrade.noUpdatesMessage": "ปลั๊กอินทั้งหมดเป็นเวอร์ชันล่าสุดแล้ว",
"batchUpgrade.submittedMessage": "ส่งงานอัปเดตปลั๊กอินแล้ว",
"batchUpgrade.tooltip": "อัปเดตปลั๊กอินทั้งหมดที่ติดตั้งจาก Marketplace เป็นเวอร์ชันล่าสุด",
"category.agents": "กลยุทธ์ตัวแทน",
"category.all": "ทั้งหมด",
"category.bundles": "ชุดรวม",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Sadece seçilen",
"autoUpdate.upgradeModePlaceholder.exclude": "Seçilen eklentiler otomatik olarak güncellenmeyecek.",
"autoUpdate.upgradeModePlaceholder.partial": "Sadece seçilen eklentiler otomatik olarak güncellenecek. Şu anda hiçbir eklenti seçilmedi, bu yüzden hiçbir eklenti otomatik olarak güncellenmeyecek.",
"batchUpgrade.button": "Tümünü güncelle",
"batchUpgrade.errorMessage": "Eklenti güncelleme görevi gönderimi başarısız. Lütfen tekrar deneyin",
"batchUpgrade.noUpdatesMessage": "Tüm eklentiler güncel",
"batchUpgrade.submittedMessage": "Eklenti güncelleme görevi gönderildi",
"batchUpgrade.tooltip": "Marketplace'ten yüklenen tüm eklentileri en son sürüme güncelle",
"category.agents": "Ajan Stratejileri",
"category.all": "Tüm",
"category.bundles": "Paketler",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Тільки вибрані",
"autoUpdate.upgradeModePlaceholder.exclude": "Вибрані плагіни не будуть оновлюватися автоматично",
"autoUpdate.upgradeModePlaceholder.partial": "Тільки вибрані плагіни будуть автоматично оновлюватись. Наразі жоден з плагінів не вибрано, тому жоден плагін не буде автоматично оновлений.",
"batchUpgrade.button": "Оновити все",
"batchUpgrade.errorMessage": "Не вдалося надіслати завдання оновлення плагіна. Спробуйте ще раз",
"batchUpgrade.noUpdatesMessage": "Усі плагіни оновлені",
"batchUpgrade.submittedMessage": "Завдання оновлення плагіна надіслано",
"batchUpgrade.tooltip": "Оновити всі плагіни, встановлені з Marketplace, до останньої версії",
"category.agents": "Стратегії агентів",
"category.all": "Увесь",
"category.bundles": "Пакети",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "Chỉ được chọn",
"autoUpdate.upgradeModePlaceholder.exclude": "Các plugin được chọn sẽ không tự động cập nhật",
"autoUpdate.upgradeModePlaceholder.partial": "Chỉ những plugin được chọn mới tự động cập nhật. Hiện tại không có plugin nào được chọn, vì vậy sẽ không có plugin nào tự động cập nhật.",
"batchUpgrade.button": "Cập nhật tất cả",
"batchUpgrade.errorMessage": "Gửi tác vụ cập nhật plugin thất bại. Vui lòng thử lại",
"batchUpgrade.noUpdatesMessage": "Tất cả các plugin đã được cập nhật",
"batchUpgrade.submittedMessage": "Đã gửi tác vụ cập nhật plugin",
"batchUpgrade.tooltip": "Cập nhật tất cả các plugin được cài đặt từ Marketplace lên phiên bản mới nhất",
"category.agents": "Chiến lược đại lý",
"category.all": "Tất cả",
"category.bundles": "Bó",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "仅选定",
"autoUpdate.upgradeModePlaceholder.exclude": "选定的插件将不会自动更新",
"autoUpdate.upgradeModePlaceholder.partial": "仅选定的插件将自动更新。目前未选择任何插件,因此不会自动更新任何插件。",
"batchUpgrade.button": "全部更新",
"batchUpgrade.errorMessage": "提交插件更新任务失败,请重试",
"batchUpgrade.noUpdatesMessage": "所有插件已是最新版本",
"batchUpgrade.submittedMessage": "已提交插件更新任务",
"batchUpgrade.tooltip": "将所有从 Marketplace 安装的插件更新到最新版本",
"category.agents": "Agent 策略",
"category.all": "全部",
"category.bundles": "插件集",

View File

@ -63,11 +63,6 @@
"autoUpdate.upgradeMode.partial": "僅選擇",
"autoUpdate.upgradeModePlaceholder.exclude": "選定的插件將不會自動更新",
"autoUpdate.upgradeModePlaceholder.partial": "只有選定的插件會自動更新。目前未選定任何插件,因此不會自動更新任何插件。",
"batchUpgrade.button": "全部更新",
"batchUpgrade.errorMessage": "提交插件更新任務失敗,請重試",
"batchUpgrade.noUpdatesMessage": "所有插件已是最新版本",
"batchUpgrade.submittedMessage": "已提交插件更新任務",
"batchUpgrade.tooltip": "將所有從 Marketplace 安裝的插件更新到最新版本",
"category.agents": "代理策略",
"category.all": "都",
"category.bundles": "束",

View File

@ -104,27 +104,3 @@ export const updatePermission = async (permissions: Permissions) => {
export const uninstallPlugin = async (pluginId: string) => {
return post<UninstallPluginResponse>('/workspaces/current/plugin/uninstall', { body: { plugin_installation_id: pluginId } })
}
export const batchUpgradePlugins = async () => {
return post<{
success: Array<{
plugin_id: string
from_version: string
to_version: string
from_identifier: string
to_identifier: string
}>
failed: Array<{
plugin_id: string
current_version: string
error: string
}>
skipped: Array<{
plugin_id: string
reason: string
current_version: string
}>
}>('/workspaces/current/plugin/upgrade/batch', {
body: {},
})
}