fix(web): call OpenAPI plugins plugins, not actions, in the Plugins flow

This commit is contained in:
roshan committed 2026-10-21 03:55:52 +00:00
1 parent 5159bd8287
commit d1f93aedbf
14 files changed
+148 -148

No files matched your search

@@ -210,7 +210,7 @@ A divider separates default Chat selection from the schema fields. Creation omit
Back preserves schema and credential drafts. Creation keeps one dialog and backdrop mounted across schema and authentication steps.
Authorization supports OAuth, custom headers/API keys, pass-through when enabled, and explicit no authentication.
Existing Craft App edits omit unchanged availability, so unrelated saves preserve concurrent admin changes.
Only the final Add Action creates a record. Auth saves use refreshed permission-stamped rows.
Only the final Add Plugin button creates a record. Auth saves use refreshed permission-stamped rows.
Failed retries reuse the created tool ID and any newly created OAuth configuration ID.
Retry writes require a successful authoritative refresh, not SWR's cached
revalidation result. Schema and metadata writes preserve the fresh row's OAuth
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "إضافة إجراء OpenAPI"
"title": "إضافة إضافة OpenAPI"
},
"cancelButton": {
"label": "إلغاء"
@@ -188,14 +188,14 @@
"invalidJson": "تنسيق JSON غير صالح",
"placeholder": "أدخل مخطط OpenAPI هنا",
"required": "تعريف مخطط OpenAPI مطلوب",
"subDescription": "حدد مخطط OpenAPI يعرّف واجهات API التي تريد إتاحتها ضمن هذا الإجراء. يمكنك استخدام العناصر النائبة `CHAT_SESSION_ID` و`MESSAGE_ID` و`USER_ID` و`USER_EMAIL` في أي مكان في المخطط (مثل عنوان الخادم أو المسارات أو القيم الافتراضية للمعاملات) وستُستبدل بقيم الطلب الحالي وقت الاستدعاء. اعرف المزيد عن [إجراءات OpenAPI]({docsUrl}).",
"subDescription": "حدد مخطط OpenAPI يعرّف واجهات API التي تريد إتاحتها ضمن هذه الإضافة. يمكنك استخدام العناصر النائبة `CHAT_SESSION_ID` و`MESSAGE_ID` و`USER_ID` و`USER_EMAIL` في أي مكان في المخطط (مثل عنوان الخادم أو المسارات أو القيم الافتراضية للمعاملات) وستُستبدل بقيم الطلب الحالي وقت الاستدعاء. اعرف المزيد عن [إضافات OpenAPI]({docsUrl}).",
"title": "تعريف مخطط OpenAPI"
},
"editConfigsButton": {
"disabledTooltip": "يمكن لمنشئ الإجراء أو المسؤول فقط إدارة المصادقة"
},
"editHeader": {
"title": "تعديل إجراء OpenAPI"
"title": "تعديل إضافة OpenAPI"
},
"empty": {
"description": "قدّم مخطط OpenAPI لمعاينة الإجراءات هنا.",
@@ -208,17 +208,17 @@
"noSummary": "لا يوجد ملخص"
},
"submitButton": {
"addLabel": "إضافة إجراء",
"addLabel": "إضافة إضافة",
"addingLabel": "جارٍ الإضافة...",
"saveLabel": "حفظ التغييرات",
"savingLabel": "جارٍ الحفظ..."
},
"toasts": {
"actionCreated": "تم إنشاء إجراء OpenAPI بنجاح",
"actionUpdated": "تم تحديث إجراء OpenAPI بنجاح",
"createFailed": "فشل إنشاء إجراء OpenAPI",
"actionCreated": "تم إنشاء إضافة OpenAPI بنجاح",
"actionUpdated": "تم تحديث إضافة OpenAPI بنجاح",
"createFailed": "فشل إنشاء إضافة OpenAPI",
"invalidJson": "تنسيق JSON غير صالح في تعريف مخطط OpenAPI",
"updateFailed": "فشل تحديث إجراء OpenAPI"
"updateFailed": "فشل تحديث إضافة OpenAPI"
},
"humanDescription": {
"title": "وصف للبشر",
@@ -553,13 +553,13 @@
"loadConfigFailed": "فشل تحميل إعدادات OAuth الحالية. أعد إدخال التفاصيل لتحديثها."
},
"header": {
"description": "صادق على اتصالك لبدء استخدام إجراءات OpenAPI."
"description": "صادق على اتصالك لبدء استخدام إضافات OpenAPI."
},
"headers": {
"addButton": {
"label": "إضافة ترويسة"
},
"description": "حدد ترويسات مخصصة لجميع الطلبات المرسلة إلى نقطة نهاية API لهذا الإجراء.",
"description": "حدد ترويسات مخصصة لجميع الطلبات المرسلة إلى نقطة نهاية API لهذه الإضافة.",
"keyRequired": "مفتاح الترويسة مطلوب",
"keyTitle": "الترويسة",
"minRequired": "أضف ترويسة مصادقة واحدة على الأقل",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "حذف"
},
"title": "حذف إجراء OpenAPI"
"title": "حذف إضافة OpenAPI"
},
"method": {
"noSummary": "لا يوجد ملخص"
@@ -764,7 +764,7 @@
"tooltip": "تهيئة توليد الصور"
},
"openapi": {
"tooltip": "إدارة إجراءات OpenAPI"
"tooltip": "إدارة إضافات OpenAPI"
},
"webSearch": {
"tooltip": "تهيئة البحث في الويب"
@@ -1112,7 +1112,7 @@
"add": {
"label": "إضافة",
"mcp": "إضافة خادم MCP مخصص",
"openapi": "إضافة إجراء OpenAPI"
"openapi": "إضافة إضافة OpenAPI"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "تعذر تحميل خوادم MCP.",
"listErrorDescription": "تعذر تحميل قائمة المكونات الإضافية. حاول مجددًا بعد قليل.",
"openapiError": "تعذر تحميل إجراءات OpenAPI.",
"openapiError": "تعذر تحميل إضافات OpenAPI.",
"retry": {
"label": "إعادة المحاولة"
},
@@ -2423,7 +2423,7 @@
"title": "وكيل البرمجة"
},
"description": "الأدوات والقدرات المتاحة للمحادثة. لا ينطبق هذا على الوكلاء.",
"pluginsNote": "يمكنك إعداد خوادم MCP وإجراءات OpenAPI للدردشة الافتراضية في [الإضافات]({url}).",
"pluginsNote": "يمكنك إعداد خوادم MCP وإضافات OpenAPI للدردشة الافتراضية في [الإضافات]({url}).",
"imageGeneration": {
"description": "توليد الصور ومعالجتها باستخدام أدوات مدعومة بالذكاء الاصطناعي.",
"disabledTooltip": "يتطلب توليد الصور نموذجًا مهيأً. قم بإعداده من التهيئة > توليد الصور، أو اطلب من مسؤول.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "OpenAPI-Aktion hinzufügen"
"title": "OpenAPI-Plugin hinzufügen"
},
"cancelButton": {
"label": "Abbrechen"
@@ -188,14 +188,14 @@
"invalidJson": "Ungültiges JSON-Format",
"placeholder": "Geben Sie hier Ihr OpenAPI-Schema ein",
"required": "Die Definition des OpenAPI-Schemas ist erforderlich",
"subDescription": "Geben Sie ein OpenAPI-Schema an, das die APIs definiert, die Sie im Rahmen dieser Aktion bereitstellen möchten. Sie können die Platzhalter `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` und `USER_EMAIL` an beliebiger Stelle im Schema verwenden (z. B. Server-URL, Pfade, Standardwerte von Parametern). Sie werden beim Aufruf durch die Werte der aktuellen Anfrage ersetzt. Mehr über [OpenAPI-Aktionen]({docsUrl}) erfahren.",
"subDescription": "Geben Sie ein OpenAPI-Schema an, das die APIs definiert, die Sie im Rahmen dieses Plugins bereitstellen möchten. Sie können die Platzhalter `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` und `USER_EMAIL` an beliebiger Stelle im Schema verwenden (z. B. Server-URL, Pfade, Standardwerte von Parametern). Sie werden beim Aufruf durch die Werte der aktuellen Anfrage ersetzt. Mehr über [OpenAPI-Plugins]({docsUrl}) erfahren.",
"title": "Definition des OpenAPI-Schemas"
},
"editConfigsButton": {
"disabledTooltip": "Nur der Ersteller der Aktion oder ein Administrator kann die Authentifizierung verwalten"
},
"editHeader": {
"title": "OpenAPI-Aktion bearbeiten"
"title": "OpenAPI-Plugin bearbeiten"
},
"empty": {
"description": "Geben Sie ein OpenAPI-Schema an, um hier eine Vorschau der Aktionen zu sehen.",
@@ -208,17 +208,17 @@
"noSummary": "Keine Zusammenfassung angegeben"
},
"submitButton": {
"addLabel": "Aktion hinzufügen",
"addLabel": "Plugin hinzufügen",
"addingLabel": "Wird hinzugefügt...",
"saveLabel": "Änderungen speichern",
"savingLabel": "Wird gespeichert..."
},
"toasts": {
"actionCreated": "OpenAPI-Aktion erfolgreich erstellt",
"actionUpdated": "OpenAPI-Aktion erfolgreich aktualisiert",
"createFailed": "Die OpenAPI-Aktion konnte nicht erstellt werden",
"actionCreated": "OpenAPI-Plugin erfolgreich erstellt",
"actionUpdated": "OpenAPI-Plugin erfolgreich aktualisiert",
"createFailed": "Das OpenAPI-Plugin konnte nicht erstellt werden",
"invalidJson": "Ungültiges JSON-Format in der Definition des OpenAPI-Schemas",
"updateFailed": "Die OpenAPI-Aktion konnte nicht aktualisiert werden"
"updateFailed": "Das OpenAPI-Plugin konnte nicht aktualisiert werden"
},
"humanDescription": {
"title": "Beschreibung für Menschen",
@@ -553,13 +553,13 @@
"loadConfigFailed": "Die vorhandene OAuth-Konfiguration konnte nicht geladen werden. Geben Sie die Details erneut ein, um sie zu aktualisieren."
},
"header": {
"description": "Authentifizieren Sie Ihre Verbindung, um die OpenAPI-Aktionen zu verwenden."
"description": "Authentifizieren Sie Ihre Verbindung, um dieses OpenAPI-Plugin zu verwenden."
},
"headers": {
"addButton": {
"label": "Header hinzufügen"
},
"description": "Legen Sie benutzerdefinierte Header für alle Anfragen an den API-Endpunkt dieser Aktion fest.",
"description": "Legen Sie benutzerdefinierte Header für alle Anfragen an den API-Endpunkt dieses Plugins fest.",
"keyRequired": "Der Header-Schlüssel ist erforderlich",
"keyTitle": "Header",
"minRequired": "Fügen Sie mindestens einen Authentifizierungs-Header hinzu",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "Löschen"
},
"title": "OpenAPI-Aktion löschen"
"title": "OpenAPI-Plugin löschen"
},
"method": {
"noSummary": "Keine Zusammenfassung angegeben"
@@ -764,7 +764,7 @@
"tooltip": "Bilderzeugung konfigurieren"
},
"openapi": {
"tooltip": "OpenAPI-Aktionen verwalten"
"tooltip": "OpenAPI-Plugins verwalten"
},
"webSearch": {
"tooltip": "Websuche konfigurieren"
@@ -1112,7 +1112,7 @@
"add": {
"label": "Hinzufügen",
"mcp": "Benutzerdefinierten MCP-Server hinzufügen",
"openapi": "OpenAPI-Aktion hinzufügen"
"openapi": "OpenAPI-Plugin hinzufügen"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "MCP-Server konnten nicht geladen werden.",
"listErrorDescription": "Diese Plugin-Liste konnte nicht geladen werden. Versuchen Sie es gleich erneut.",
"openapiError": "OpenAPI-Aktionen konnten nicht geladen werden.",
"openapiError": "OpenAPI-Plugins konnten nicht geladen werden.",
"retry": {
"label": "Erneut versuchen"
},
@@ -2423,7 +2423,7 @@
"title": "Coding-Agent"
},
"description": "Tools und Funktionen, die der Chat verwenden kann. Dies gilt nicht für Agenten.",
"pluginsNote": "Konfigurieren Sie MCP-Server und OpenAPI-Aktionen für den Standard-Chat unter [Plugins]({url}).",
"pluginsNote": "Konfigurieren Sie MCP-Server und OpenAPI-Plugins für den Standard-Chat unter [Plugins]({url}).",
"imageGeneration": {
"description": "Bilder mit KI-gestützten Tools erzeugen und bearbeiten.",
"disabledTooltip": "Die Bilderzeugung erfordert ein konfiguriertes Modell. Richten Sie eines unter Konfiguration > Bilderzeugung ein oder fragen Sie einen Administrator.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "Add OpenAPI action"
"title": "Add OpenAPI plugin"
},
"cancelButton": {
"label": "Cancel"
@@ -188,14 +188,14 @@
"invalidJson": "Invalid JSON format",
"placeholder": "Enter your OpenAPI schema here",
"required": "OpenAPI schema definition is required",
"subDescription": "Specify an OpenAPI schema that defines the APIs you want to make available as part of this action. You can use the placeholders `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID`, and `USER_EMAIL` anywhere in the schema (e.g. server URL, paths, parameter defaults) and they will be replaced with the current request's values at call time. Learn more about [OpenAPI actions]({docsUrl}).",
"subDescription": "Specify an OpenAPI schema that defines the APIs you want to make available as part of this plugin. You can use the placeholders `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID`, and `USER_EMAIL` anywhere in the schema (e.g. server URL, paths, parameter defaults) and they will be replaced with the current request's values at call time. Learn more about [OpenAPI plugins]({docsUrl}).",
"title": "OpenAPI Schema Definition"
},
"editConfigsButton": {
"disabledTooltip": "Only the action's creator or an admin can manage authentication"
},
"editHeader": {
"title": "Edit OpenAPI action"
"title": "Edit OpenAPI plugin"
},
"empty": {
"description": "Provide OpenAPI schema to preview actions here.",
@@ -208,17 +208,17 @@
"noSummary": "No summary provided"
},
"submitButton": {
"addLabel": "Add Action",
"addLabel": "Add Plugin",
"addingLabel": "Adding...",
"saveLabel": "Save Changes",
"savingLabel": "Saving..."
},
"toasts": {
"actionCreated": "OpenAPI action created successfully",
"actionUpdated": "OpenAPI action updated successfully",
"createFailed": "Failed to create OpenAPI action",
"actionCreated": "OpenAPI plugin created successfully",
"actionUpdated": "OpenAPI plugin updated successfully",
"createFailed": "Failed to create OpenAPI plugin",
"invalidJson": "Invalid JSON format in OpenAPI schema definition",
"updateFailed": "Failed to update OpenAPI action"
"updateFailed": "Failed to update OpenAPI plugin"
},
"humanDescription": {
"title": "Description for Humans",
@@ -553,13 +553,13 @@
"loadConfigFailed": "Failed to load existing OAuth configuration. Re-enter the details to update it."
},
"header": {
"description": "Authenticate your connection to start using the OpenAPI actions."
"description": "Authenticate your connection to start using this OpenAPI plugin."
},
"headers": {
"addButton": {
"label": "Add Header"
},
"description": "Specify custom headers for all requests sent to this action's API endpoint.",
"description": "Specify custom headers for all requests sent to this plugin's API endpoint.",
"keyRequired": "Header key is required",
"keyTitle": "Header",
"minRequired": "Add at least one authentication header",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "Delete"
},
"title": "Delete OpenAPI action"
"title": "Delete OpenAPI plugin"
},
"method": {
"noSummary": "No summary provided"
@@ -764,7 +764,7 @@
"tooltip": "Configure Image Generation"
},
"openapi": {
"tooltip": "Manage OpenAPI Actions"
"tooltip": "Manage OpenAPI plugins"
},
"webSearch": {
"tooltip": "Configure Web Search"
@@ -1112,7 +1112,7 @@
"add": {
"label": "Add",
"mcp": "Add custom MCP server",
"openapi": "Add OpenAPI action"
"openapi": "Add OpenAPI plugin"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "MCP servers could not be loaded.",
"listErrorDescription": "We couldn't load this plugin list. Try again in a moment.",
"openapiError": "OpenAPI actions could not be loaded.",
"openapiError": "OpenAPI plugins could not be loaded.",
"retry": {
"label": "Retry"
},
@@ -2423,7 +2423,7 @@
"title": "Coding Agent"
},
"description": "Tools and capabilities available for chat to use. This does not apply to agents.",
"pluginsNote": "Configure MCP servers and OpenAPI actions for default Chat in [Plugins]({url}).",
"pluginsNote": "Configure MCP servers and OpenAPI plugins for default Chat in [Plugins]({url}).",
"imageGeneration": {
"description": "Generate and manipulate images using AI-powered tools.",
"disabledTooltip": "Image generation requires a configured model. Set one up under Configuration > Image Generation, or ask an admin.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "Añadir una acción de OpenAPI"
"title": "Añadir un plugin OpenAPI"
},
"cancelButton": {
"label": "Cancelar"
@@ -188,14 +188,14 @@
"invalidJson": "El formato JSON no es válido",
"placeholder": "Introduce aquí tu esquema de OpenAPI",
"required": "La definición del esquema de OpenAPI es obligatoria",
"subDescription": "Especifica un esquema de OpenAPI que defina las API que quieres poner a disposición como parte de esta acción. Puedes usar los marcadores de posición `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` y `USER_EMAIL` en cualquier parte del esquema (p. ej., la URL del servidor, las rutas o los valores predeterminados de los parámetros) y se sustituirán por los valores de la solicitud actual en el momento de la llamada. Más información sobre las [acciones de OpenAPI]({docsUrl}).",
"subDescription": "Especifica un esquema de OpenAPI que defina las API que quieres poner a disposición como parte de este plugin. Puedes usar los marcadores de posición `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` y `USER_EMAIL` en cualquier parte del esquema (p. ej., la URL del servidor, las rutas o los valores predeterminados de los parámetros) y se sustituirán por los valores de la solicitud actual en el momento de la llamada. Más información sobre las [plugins OpenAPI]({docsUrl}).",
"title": "Definición del esquema de OpenAPI"
},
"editConfigsButton": {
"disabledTooltip": "Solo el creador de la acción o un administrador pueden gestionar la autenticación"
},
"editHeader": {
"title": "Editar la acción de OpenAPI"
"title": "Editar el plugin OpenAPI"
},
"empty": {
"description": "Proporciona un esquema de OpenAPI para ver aquí una vista previa de las acciones.",
@@ -208,17 +208,17 @@
"noSummary": "No se proporcionó ningún resumen"
},
"submitButton": {
"addLabel": "Añadir la acción",
"addLabel": "Añadir el plugin",
"addingLabel": "Añadiendo...",
"saveLabel": "Guardar los cambios",
"savingLabel": "Guardando..."
},
"toasts": {
"actionCreated": "Acción de OpenAPI creada correctamente",
"actionUpdated": "Acción de OpenAPI actualizada correctamente",
"createFailed": "No se pudo crear la acción de OpenAPI",
"actionCreated": "Plugin OpenAPI creado correctamente",
"actionUpdated": "Plugin OpenAPI actualizado correctamente",
"createFailed": "No se pudo crear el plugin OpenAPI",
"invalidJson": "El formato JSON de la definición del esquema de OpenAPI no es válido",
"updateFailed": "No se pudo actualizar la acción de OpenAPI"
"updateFailed": "No se pudo actualizar el plugin OpenAPI"
},
"humanDescription": {
"title": "Descripción para personas",
@@ -553,13 +553,13 @@
"loadConfigFailed": "No se pudo cargar la configuración de OAuth existente. Vuelve a introducir los datos para actualizarla."
},
"header": {
"description": "Autentica tu conexión para empezar a usar las acciones de OpenAPI."
"description": "Autentica tu conexión para empezar a usar este plugin OpenAPI."
},
"headers": {
"addButton": {
"label": "Añadir una cabecera"
},
"description": "Especifica cabeceras personalizadas para todas las solicitudes que se envían al endpoint de API de esta acción.",
"description": "Especifica cabeceras personalizadas para todas las solicitudes que se envían al endpoint de API de este plugin.",
"keyRequired": "La clave de la cabecera es obligatoria",
"keyTitle": "Cabecera",
"minRequired": "Añade al menos una cabecera de autenticación",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "Eliminar"
},
"title": "Eliminar la acción de OpenAPI"
"title": "Eliminar el plugin OpenAPI"
},
"method": {
"noSummary": "No se proporcionó ningún resumen"
@@ -764,7 +764,7 @@
"tooltip": "Configurar la generación de imágenes"
},
"openapi": {
"tooltip": "Gestionar acciones OpenAPI"
"tooltip": "Gestionar plugins OpenAPI"
},
"webSearch": {
"tooltip": "Configurar la búsqueda web"
@@ -1112,7 +1112,7 @@
"add": {
"label": "Añadir",
"mcp": "Añadir servidor MCP personalizado",
"openapi": "Añadir acción OpenAPI"
"openapi": "Añadir plugin OpenAPI"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "No se pudieron cargar los servidores MCP.",
"listErrorDescription": "No pudimos cargar esta lista de plugins. Inténtalo de nuevo en un momento.",
"openapiError": "No se pudieron cargar las acciones OpenAPI.",
"openapiError": "No se pudieron cargar los plugins OpenAPI.",
"retry": {
"label": "Reintentar"
},
@@ -2423,7 +2423,7 @@
"title": "Agente de código"
},
"description": "Herramientas y capacidades que el chat puede usar. Esto no se aplica a los agentes.",
"pluginsNote": "Configura servidores MCP y acciones OpenAPI para el chat predeterminado en [Plugins]({url}).",
"pluginsNote": "Configura servidores MCP y plugins OpenAPI para el chat predeterminado en [Plugins]({url}).",
"imageGeneration": {
"description": "Genera y edita imágenes con herramientas de IA.",
"disabledTooltip": "La generación de imágenes requiere un modelo configurado. Configura uno en Configuración > Generación de imágenes, o pídeselo a un administrador.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "Ajouter une action OpenAPI"
"title": "Ajouter un plugin OpenAPI"
},
"cancelButton": {
"label": "Annuler"
@@ -188,14 +188,14 @@
"invalidJson": "Format JSON non valide",
"placeholder": "Saisissez votre schéma OpenAPI ici",
"required": "La définition du schéma OpenAPI est obligatoire",
"subDescription": "Indiquez un schéma OpenAPI qui définit les API que vous voulez rendre disponibles dans cette action. Vous pouvez utiliser les espaces réservés `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` et `USER_EMAIL` partout dans le schéma (par exemple l'URL du serveur, les chemins, les valeurs par défaut des paramètres) : ils seront remplacés par les valeurs de la requête en cours au moment de l'appel. En savoir plus sur les [actions OpenAPI]({docsUrl}).",
"subDescription": "Indiquez un schéma OpenAPI qui définit les API que vous voulez rendre disponibles dans ce plugin. Vous pouvez utiliser les espaces réservés `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` et `USER_EMAIL` partout dans le schéma (par exemple l'URL du serveur, les chemins, les valeurs par défaut des paramètres) : ils seront remplacés par les valeurs de la requête en cours au moment de l'appel. En savoir plus sur les [plugins OpenAPI]({docsUrl}).",
"title": "Définition du schéma OpenAPI"
},
"editConfigsButton": {
"disabledTooltip": "Seuls le créateur de l'action ou un administrateur peuvent gérer l'authentification"
},
"editHeader": {
"title": "Modifier l'action OpenAPI"
"title": "Modifier le plugin OpenAPI"
},
"empty": {
"description": "Fournissez un schéma OpenAPI pour prévisualiser les actions ici.",
@@ -208,17 +208,17 @@
"noSummary": "Aucun résumé fourni"
},
"submitButton": {
"addLabel": "Ajouter l'action",
"addLabel": "Ajouter le plugin",
"addingLabel": "Ajout en cours...",
"saveLabel": "Enregistrer les modifications",
"savingLabel": "Enregistrement..."
},
"toasts": {
"actionCreated": "Action OpenAPI créée avec succès",
"actionUpdated": "Action OpenAPI mise à jour avec succès",
"createFailed": "Échec de la création de l'action OpenAPI",
"actionCreated": "Plugin OpenAPI créé avec succès",
"actionUpdated": "Plugin OpenAPI mis à jour avec succès",
"createFailed": "Échec de la création du plugin OpenAPI",
"invalidJson": "Format JSON non valide dans la définition du schéma OpenAPI",
"updateFailed": "Échec de la mise à jour de l'action OpenAPI"
"updateFailed": "Échec de la mise à jour du plugin OpenAPI"
},
"humanDescription": {
"title": "Description pour les utilisateurs",
@@ -553,13 +553,13 @@
"loadConfigFailed": "Échec du chargement de la configuration OAuth existante. Saisissez à nouveau les détails pour la mettre à jour."
},
"header": {
"description": "Authentifiez votre connexion pour commencer à utiliser les actions OpenAPI."
"description": "Authentifiez votre connexion pour commencer à utiliser ce plugin OpenAPI."
},
"headers": {
"addButton": {
"label": "Ajouter un en-tête"
},
"description": "Indiquez les en-têtes personnalisés pour toutes les requêtes envoyées au point de terminaison API de cette action.",
"description": "Indiquez les en-têtes personnalisés pour toutes les requêtes envoyées au point de terminaison API de ce plugin.",
"keyRequired": "La clé de l'en-tête est obligatoire",
"keyTitle": "En-tête",
"minRequired": "Ajoutez au moins un en-tête d'authentification",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "Supprimer"
},
"title": "Supprimer l'action OpenAPI"
"title": "Supprimer le plugin OpenAPI"
},
"method": {
"noSummary": "Aucun résumé fourni"
@@ -764,7 +764,7 @@
"tooltip": "Configurer la génération d'images"
},
"openapi": {
"tooltip": "Gérer les actions OpenAPI"
"tooltip": "Gérer les plugins OpenAPI"
},
"webSearch": {
"tooltip": "Configurer la recherche web"
@@ -1112,7 +1112,7 @@
"add": {
"label": "Ajouter",
"mcp": "Ajouter un serveur MCP personnalisé",
"openapi": "Ajouter une action OpenAPI"
"openapi": "Ajouter un plugin OpenAPI"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "Impossible de charger les serveurs MCP.",
"listErrorDescription": "Impossible de charger cette liste de plugins. Réessayez dans un instant.",
"openapiError": "Impossible de charger les actions OpenAPI.",
"openapiError": "Impossible de charger les plugins OpenAPI.",
"retry": {
"label": "Réessayer"
},
@@ -2423,7 +2423,7 @@
"title": "Agent de code"
},
"description": "Outils et fonctionnalités que la discussion peut utiliser. Cela ne s'applique pas aux agents.",
"pluginsNote": "Configurez les serveurs MCP et les actions OpenAPI pour le chat par défaut dans [Plugins]({url}).",
"pluginsNote": "Configurez les serveurs MCP et les plugins OpenAPI pour le chat par défaut dans [Plugins]({url}).",
"imageGeneration": {
"description": "Générez et modifiez des images à l'aide d'outils basés sur l'IA.",
"disabledTooltip": "La génération d'images nécessite un modèle configuré. Configurez-en un dans Configuration > Génération d'images, ou demandez à un administrateur.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "OpenAPI アクションを追加"
"title": "OpenAPI プラグインを追加"
},
"cancelButton": {
"label": "キャンセル"
@@ -188,14 +188,14 @@
"invalidJson": "JSON の形式が無効です",
"placeholder": "ここに OpenAPI スキーマを入力してください",
"required": "OpenAPI スキーマ定義は必須です",
"subDescription": "このアクションで利用可能にする API を定義する OpenAPI スキーマを指定します。スキーマ内のどこでも (サーバー URL、パス、パラメーターの既定値など) プレースホルダー `CHAT_SESSION_ID`、`MESSAGE_ID`、`USER_ID`、`USER_EMAIL` を使用できます。呼び出し時に、現在のリクエストの値に置き換えられます。詳細は [OpenAPI アクション]({docsUrl}) を参照してください。",
"subDescription": "このプラグインで利用可能にする API を定義する OpenAPI スキーマを指定します。スキーマ内のどこでも (サーバー URL、パス、パラメーターの既定値など) プレースホルダー `CHAT_SESSION_ID`、`MESSAGE_ID`、`USER_ID`、`USER_EMAIL` を使用できます。呼び出し時に、現在のリクエストの値に置き換えられます。詳細は [OpenAPI プラグイン]({docsUrl}) を参照してください。",
"title": "OpenAPI スキーマ定義"
},
"editConfigsButton": {
"disabledTooltip": "認証を管理できるのは、アクションの作成者または管理者のみです"
},
"editHeader": {
"title": "OpenAPI アクションを編集"
"title": "OpenAPI プラグインを編集"
},
"empty": {
"description": "OpenAPI スキーマを入力すると、ここにアクションのプレビューが表示されます。",
@@ -208,17 +208,17 @@
"noSummary": "概要はありません"
},
"submitButton": {
"addLabel": "アクションを追加",
"addLabel": "プラグインを追加",
"addingLabel": "追加中...",
"saveLabel": "変更を保存",
"savingLabel": "保存中..."
},
"toasts": {
"actionCreated": "OpenAPI アクションを作成しました",
"actionUpdated": "OpenAPI アクションを更新しました",
"createFailed": "OpenAPI アクションの作成に失敗しました",
"actionCreated": "OpenAPI プラグインを作成しました",
"actionUpdated": "OpenAPI プラグインを更新しました",
"createFailed": "OpenAPI プラグインの作成に失敗しました",
"invalidJson": "OpenAPI スキーマ定義の JSON 形式が無効です",
"updateFailed": "OpenAPI アクションの更新に失敗しました"
"updateFailed": "OpenAPI プラグインの更新に失敗しました"
},
"humanDescription": {
"title": "ユーザー向けの説明",
@@ -553,13 +553,13 @@
"loadConfigFailed": "既存の OAuth 設定の読み込みに失敗しました。更新するには、内容を再入力してください。"
},
"header": {
"description": "接続を認証すると、OpenAPI アクションを使用できます。"
"description": "接続を認証すると、OpenAPI プラグインを使用できます。"
},
"headers": {
"addButton": {
"label": "ヘッダーを追加"
},
"description": "このアクションの API エンドポイントに送信するすべてのリクエストに、カスタムヘッダーを指定します。",
"description": "このプラグインの API エンドポイントに送信するすべてのリクエストに、カスタムヘッダーを指定します。",
"keyRequired": "ヘッダーのキーは必須です",
"keyTitle": "ヘッダー",
"minRequired": "認証ヘッダーを 1 つ以上追加してください",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "削除"
},
"title": "OpenAPI アクションを削除"
"title": "OpenAPI プラグインを削除"
},
"method": {
"noSummary": "概要はありません"
@@ -764,7 +764,7 @@
"tooltip": "画像生成を設定"
},
"openapi": {
"tooltip": "OpenAPIアクションを管理"
"tooltip": "OpenAPIプラグインを管理"
},
"webSearch": {
"tooltip": "ウェブ検索を設定"
@@ -1112,7 +1112,7 @@
"add": {
"label": "追加",
"mcp": "カスタム MCP サーバーを追加",
"openapi": "OpenAPI アクションを追加"
"openapi": "OpenAPI プラグインを追加"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "MCP サーバーを読み込めませんでした。",
"listErrorDescription": "このプラグイン一覧を読み込めませんでした。しばらくしてから再試行してください。",
"openapiError": "OpenAPI アクションを読み込めませんでした。",
"openapiError": "OpenAPI プラグインを読み込めませんでした。",
"retry": {
"label": "再試行"
},
@@ -2423,7 +2423,7 @@
"title": "コーディングエージェント"
},
"description": "チャットで使用できるツールと機能です。エージェントには適用されません。",
"pluginsNote": "デフォルトのチャットで使用する MCP サーバーと OpenAPI アクションは、[プラグイン]({url})で設定できます。",
"pluginsNote": "デフォルトのチャットで使用する MCP サーバーと OpenAPI プラグインは、[プラグイン]({url})で設定できます。",
"imageGeneration": {
"description": "AI ツールを使用して画像を生成・加工します。",
"disabledTooltip": "画像生成にはモデルの設定が必要です。「構成 > 画像生成」で設定するか、管理者に依頼してください。",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "OpenAPI 액션 추가"
"title": "OpenAPI 플러그인 추가"
},
"cancelButton": {
"label": "취소"
@@ -188,14 +188,14 @@
"invalidJson": "잘못된 JSON 형식입니다",
"placeholder": "여기에 OpenAPI 스키마를 입력하세요",
"required": "OpenAPI 스키마 정의는 필수입니다",
"subDescription": "이 액션의 일부로 제공할 API를 정의하는 OpenAPI 스키마를 지정하세요. 스키마의 어느 위치(예: 서버 URL, 경로, 파라미터 기본값)에나 `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID`, `USER_EMAIL` 자리 표시자를 사용할 수 있으며, 호출 시점에 현재 요청의 값으로 대체됩니다. [OpenAPI 액션]({docsUrl})에 대해 자세히 알아보세요.",
"subDescription": "이 플러그인의 일부로 제공할 API를 정의하는 OpenAPI 스키마를 지정하세요. 스키마의 어느 위치(예: 서버 URL, 경로, 파라미터 기본값)에나 `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID`, `USER_EMAIL` 자리 표시자를 사용할 수 있으며, 호출 시점에 현재 요청의 값으로 대체됩니다. [OpenAPI 플러그인]({docsUrl})에 대해 자세히 알아보세요.",
"title": "OpenAPI 스키마 정의"
},
"editConfigsButton": {
"disabledTooltip": "액션을 만든 사용자 또는 관리자만 인증을 관리할 수 있습니다"
},
"editHeader": {
"title": "OpenAPI 액션 편집"
"title": "OpenAPI 플러그인 편집"
},
"empty": {
"description": "OpenAPI 스키마를 입력하면 여기에서 액션을 미리 볼 수 있습니다.",
@@ -208,17 +208,17 @@
"noSummary": "요약이 제공되지 않음"
},
"submitButton": {
"addLabel": "액션 추가",
"addLabel": "플러그인 추가",
"addingLabel": "추가하는 중...",
"saveLabel": "변경 사항 저장",
"savingLabel": "저장하는 중..."
},
"toasts": {
"actionCreated": "OpenAPI 액션을 만들었습니다",
"actionUpdated": "OpenAPI 액션을 업데이트했습니다",
"createFailed": "OpenAPI 액션을 만들지 못했습니다",
"actionCreated": "OpenAPI 플러그인을 만들었습니다",
"actionUpdated": "OpenAPI 플러그인을 업데이트했습니다",
"createFailed": "OpenAPI 플러그인을 만들지 못했습니다",
"invalidJson": "OpenAPI 스키마 정의의 JSON 형식이 잘못되었습니다",
"updateFailed": "OpenAPI 액션을 업데이트하지 못했습니다"
"updateFailed": "OpenAPI 플러그인을 업데이트하지 못했습니다"
},
"humanDescription": {
"title": "사용자를 위한 설명",
@@ -553,13 +553,13 @@
"loadConfigFailed": "기존 OAuth 구성을 불러오지 못했습니다. 업데이트하려면 세부 정보를 다시 입력하세요."
},
"header": {
"description": "OpenAPI 액션을 사용하려면 연결을 인증하세요."
"description": "OpenAPI 플러그인을 사용하려면 연결을 인증하세요."
},
"headers": {
"addButton": {
"label": "헤더 추가"
},
"description": "이 액션의 API 엔드포인트로 보내는 모든 요청에 사용할 사용자 지정 헤더를 지정하세요.",
"description": "이 플러그인의 API 엔드포인트로 보내는 모든 요청에 사용할 사용자 지정 헤더를 지정하세요.",
"keyRequired": "헤더 키는 필수입니다",
"keyTitle": "헤더",
"minRequired": "인증 헤더를 하나 이상 추가하세요",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "삭제"
},
"title": "OpenAPI 액션 삭제"
"title": "OpenAPI 플러그인 삭제"
},
"method": {
"noSummary": "요약이 제공되지 않음"
@@ -764,7 +764,7 @@
"tooltip": "이미지 생성 구성"
},
"openapi": {
"tooltip": "OpenAPI 작업 관리"
"tooltip": "OpenAPI 플러그인 관리"
},
"webSearch": {
"tooltip": "웹 검색 구성"
@@ -1112,7 +1112,7 @@
"add": {
"label": "추가",
"mcp": "사용자 지정 MCP 서버 추가",
"openapi": "OpenAPI 작업 추가"
"openapi": "OpenAPI 플러그인 추가"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "MCP 서버를 불러올 수 없습니다.",
"listErrorDescription": "플러그인 목록을 불러오지 못했습니다. 잠시 후 다시 시도하세요.",
"openapiError": "OpenAPI 작업을 불러올 수 없습니다.",
"openapiError": "OpenAPI 플러그인을 불러올 수 없습니다.",
"retry": {
"label": "다시 시도"
},
@@ -2423,7 +2423,7 @@
"title": "코딩 에이전트"
},
"description": "채팅에서 사용할 수 있는 도구와 기능입니다. 에이전트에는 적용되지 않습니다.",
"pluginsNote": "기본 채팅에 사용할 MCP 서버와 OpenAPI 작업은 [플러그인]({url})에서 설정하세요.",
"pluginsNote": "기본 채팅에 사용할 MCP 서버와 OpenAPI 플러그인은 [플러그인]({url})에서 설정하세요.",
"imageGeneration": {
"description": "AI 기반 도구로 이미지를 생성하고 편집합니다.",
"disabledTooltip": "이미지 생성에는 설정된 모델이 필요합니다. 구성 > 이미지 생성에서 모델을 설정하거나 관리자에게 문의하세요.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "Adicionar ação OpenAPI"
"title": "Adicionar plugin OpenAPI"
},
"cancelButton": {
"label": "Cancelar"
@@ -188,14 +188,14 @@
"invalidJson": "Formato JSON inválido",
"placeholder": "Insira seu esquema OpenAPI aqui",
"required": "A definição do esquema OpenAPI é obrigatória",
"subDescription": "Especifique um esquema OpenAPI que defina as APIs que você quer disponibilizar como parte desta ação. Você pode usar os espaços reservados `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` e `USER_EMAIL` em qualquer lugar do esquema (por exemplo, URL do servidor, caminhos, valores padrão de parâmetros). Eles serão substituídos pelos valores da solicitação atual no momento da chamada. Saiba mais sobre [ações OpenAPI]({docsUrl}).",
"subDescription": "Especifique um esquema OpenAPI que defina as APIs que você quer disponibilizar como parte deste plugin. Você pode usar os espaços reservados `CHAT_SESSION_ID`, `MESSAGE_ID`, `USER_ID` e `USER_EMAIL` em qualquer lugar do esquema (por exemplo, URL do servidor, caminhos, valores padrão de parâmetros). Eles serão substituídos pelos valores da solicitação atual no momento da chamada. Saiba mais sobre [plugins OpenAPI]({docsUrl}).",
"title": "Definição do esquema OpenAPI"
},
"editConfigsButton": {
"disabledTooltip": "Somente o criador da ação ou um administrador pode gerenciar a autenticação"
},
"editHeader": {
"title": "Editar ação OpenAPI"
"title": "Editar plugin OpenAPI"
},
"empty": {
"description": "Forneça um esquema OpenAPI para pré-visualizar as ações aqui.",
@@ -208,17 +208,17 @@
"noSummary": "Nenhum resumo fornecido"
},
"submitButton": {
"addLabel": "Adicionar ação",
"addLabel": "Adicionar plugin",
"addingLabel": "Adicionando...",
"saveLabel": "Salvar alterações",
"savingLabel": "Salvando..."
},
"toasts": {
"actionCreated": "Ação OpenAPI criada com sucesso",
"actionUpdated": "Ação OpenAPI atualizada com sucesso",
"createFailed": "Falha ao criar a ação OpenAPI",
"actionCreated": "Plugin OpenAPI criado com sucesso",
"actionUpdated": "Plugin OpenAPI atualizado com sucesso",
"createFailed": "Falha ao criar o plugin OpenAPI",
"invalidJson": "Formato JSON inválido na definição do esquema OpenAPI",
"updateFailed": "Falha ao atualizar a ação OpenAPI"
"updateFailed": "Falha ao atualizar o plugin OpenAPI"
},
"humanDescription": {
"title": "Descrição para pessoas",
@@ -553,13 +553,13 @@
"loadConfigFailed": "Falha ao carregar a configuração OAuth existente. Informe os detalhes novamente para atualizá-la."
},
"header": {
"description": "Autentique sua conexão para começar a usar as ações OpenAPI."
"description": "Autentique sua conexão para começar a usar este plugin OpenAPI."
},
"headers": {
"addButton": {
"label": "Adicionar cabeçalho"
},
"description": "Especifique cabeçalhos personalizados para todas as solicitações enviadas ao endpoint de API desta ação.",
"description": "Especifique cabeçalhos personalizados para todas as solicitações enviadas ao endpoint de API deste plugin.",
"keyRequired": "A chave do cabeçalho é obrigatória",
"keyTitle": "Cabeçalho",
"minRequired": "Adicione pelo menos um cabeçalho de autenticação",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "Excluir"
},
"title": "Excluir ação OpenAPI"
"title": "Excluir plugin OpenAPI"
},
"method": {
"noSummary": "Nenhum resumo fornecido"
@@ -764,7 +764,7 @@
"tooltip": "Configurar geração de imagens"
},
"openapi": {
"tooltip": "Gerenciar ações OpenAPI"
"tooltip": "Gerenciar plugins OpenAPI"
},
"webSearch": {
"tooltip": "Configurar pesquisa na web"
@@ -1112,7 +1112,7 @@
"add": {
"label": "Adicionar",
"mcp": "Adicionar servidor MCP personalizado",
"openapi": "Adicionar ação OpenAPI"
"openapi": "Adicionar plugin OpenAPI"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "Não foi possível carregar os servidores MCP.",
"listErrorDescription": "Não foi possível carregar esta lista de plugins. Tente novamente em instantes.",
"openapiError": "Não foi possível carregar as ações OpenAPI.",
"openapiError": "Não foi possível carregar os plugins OpenAPI.",
"retry": {
"label": "Tentar novamente"
},
@@ -2423,7 +2423,7 @@
"title": "Agente de código"
},
"description": "Ferramentas e recursos disponíveis para o chat usar. Isso não se aplica aos agentes.",
"pluginsNote": "Configure servidores MCP e ações OpenAPI para o chat padrão em [Plugins]({url}).",
"pluginsNote": "Configure servidores MCP e plugins OpenAPI para o chat padrão em [Plugins]({url}).",
"imageGeneration": {
"description": "Gera e manipula imagens com ferramentas de IA.",
"disabledTooltip": "A geração de imagens requer um modelo configurado. Configure um em Configuração > Geração de imagens ou peça a um administrador.",
+15 -15
View File
@@ -176,7 +176,7 @@
},
"addOpenApiModal": {
"addHeader": {
"title": "添加 OpenAPI 操作"
"title": "添加 OpenAPI 插件"
},
"cancelButton": {
"label": "取消"
@@ -188,14 +188,14 @@
"invalidJson": "JSON 格式无效",
"placeholder": "在此输入您的 OpenAPI 架构",
"required": "必须填写 OpenAPI 架构定义",
"subDescription": "指定一个 OpenAPI 架构,用于定义您想作为此操作一部分开放的 API。您可以在架构的任意位置使用占位符 `CHAT_SESSION_ID`、`MESSAGE_ID`、`USER_ID` 和 `USER_EMAIL`(例如服务器 URL、路径、参数默认值),调用时它们会被替换为当前请求的值。详细了解 [OpenAPI 操作]({docsUrl})。",
"subDescription": "指定一个 OpenAPI 架构,用于定义您想作为此插件一部分开放的 API。您可以在架构的任意位置使用占位符 `CHAT_SESSION_ID`、`MESSAGE_ID`、`USER_ID` 和 `USER_EMAIL`(例如服务器 URL、路径、参数默认值),调用时它们会被替换为当前请求的值。详细了解 [OpenAPI 插件]({docsUrl})。",
"title": "OpenAPI 架构定义"
},
"editConfigsButton": {
"disabledTooltip": "只有该操作的创建者或管理员才能管理身份验证"
},
"editHeader": {
"title": "编辑 OpenAPI 操作"
"title": "编辑 OpenAPI 插件"
},
"empty": {
"description": "提供 OpenAPI 架构后即可在此预览操作。",
@@ -208,17 +208,17 @@
"noSummary": "未提供摘要"
},
"submitButton": {
"addLabel": "添加操作",
"addLabel": "添加插件",
"addingLabel": "正在添加...",
"saveLabel": "保存更改",
"savingLabel": "正在保存..."
},
"toasts": {
"actionCreated": "OpenAPI 操作创建成功",
"actionUpdated": "OpenAPI 操作更新成功",
"createFailed": "创建 OpenAPI 操作失败",
"actionCreated": "OpenAPI 插件创建成功",
"actionUpdated": "OpenAPI 插件更新成功",
"createFailed": "创建 OpenAPI 插件失败",
"invalidJson": "OpenAPI 架构定义中的 JSON 格式无效",
"updateFailed": "更新 OpenAPI 操作失败"
"updateFailed": "更新 OpenAPI 插件失败"
},
"humanDescription": {
"title": "面向用户的描述",
@@ -553,13 +553,13 @@
"loadConfigFailed": "加载现有 OAuth 配置失败。请重新输入详细信息以更新配置。"
},
"header": {
"description": "验证连接身份后即可开始使用 OpenAPI 操作。"
"description": "验证连接身份后即可开始使用 OpenAPI 插件。"
},
"headers": {
"addButton": {
"label": "添加请求头"
},
"description": "为发送到此操作 API 端点的所有请求指定自定义请求头。",
"description": "为发送到此插件 API 端点的所有请求指定自定义请求头。",
"keyRequired": "必须填写请求头名称",
"keyTitle": "请求头",
"minRequired": "请至少添加一个身份验证请求头",
@@ -632,7 +632,7 @@
"submitButton": {
"label": "删除"
},
"title": "删除 OpenAPI 操作"
"title": "删除 OpenAPI 插件"
},
"method": {
"noSummary": "未提供摘要"
@@ -764,7 +764,7 @@
"tooltip": "配置图像生成"
},
"openapi": {
"tooltip": "管理 OpenAPI 操作"
"tooltip": "管理 OpenAPI 插件"
},
"webSearch": {
"tooltip": "配置网络搜索"
@@ -1112,7 +1112,7 @@
"add": {
"label": "添加",
"mcp": "添加自定义 MCP 服务器",
"openapi": "添加 OpenAPI 操作"
"openapi": "添加 OpenAPI 插件"
},
"catalog": {
"slack": {
@@ -1171,7 +1171,7 @@
"state": {
"mcpError": "无法加载 MCP 服务器。",
"listErrorDescription": "无法加载此插件列表。请稍后重试。",
"openapiError": "无法加载 OpenAPI 操作。",
"openapiError": "无法加载 OpenAPI 插件。",
"retry": {
"label": "重试"
},
@@ -2423,7 +2423,7 @@
"title": "编程智能体"
},
"description": "对话可以使用的工具和能力。此项不适用于智能体。",
"pluginsNote": "在[插件]({url})中配置默认聊天使用的 MCP 服务器和 OpenAPI 操作。",
"pluginsNote": "在[插件]({url})中配置默认聊天使用的 MCP 服务器和 OpenAPI 插件。",
"imageGeneration": {
"description": "使用 AI 工具生成和处理图像。",
"disabledTooltip": "图像生成需要已配置的模型。请在“配置 > 图像生成”中设置一个,或联系管理员。",
+1 -1
View File
@@ -65,5 +65,5 @@ export const ADMIN_CONFIG_LINKS: Record<
/** Where an admin goes for a tool that is neither built-in nor from MCP. */
export const OPENAPI_ADMIN_CONFIG = {
href: ADMIN_ROUTES.PLUGINS.path,
tooltip: "Manage OpenAPI Actions",
tooltip: "Manage OpenAPI plugins",
};
@@ -100,7 +100,7 @@ test.each([
expect(
screen.queryByRole("switch", { name: "Enable in default Chat" })
).not.toBeInTheDocument();
await user.click(await screen.findByRole("button", { name: "Add Action" }));
await user.click(await screen.findByRole("button", { name: "Add Plugin" }));
await waitFor(() => expect(onCreated).toHaveBeenCalledWith(42));
expect(writes).toContainEqual({
path: "/api/admin/tool/custom",
@@ -180,7 +180,7 @@ test.each(["mounted", "disposed"])(
screen.getByRole("dialog", { name: "Connect to Release API" })
).toBeVisible();
expect(createBody).toBeUndefined();
await user.click(await screen.findByRole("button", { name: "Add Action" }));
await user.click(await screen.findByRole("button", { name: "Add Plugin" }));
await waitFor(() =>
expect(createBody).toEqual({
description: "Release dashboard",
@@ -246,9 +246,9 @@ test("shows creation failures without completing or closing the form", async ()
}
);
await user.click(screen.getByRole("button", { name: "Continue" }));
await user.click(await screen.findByRole("button", { name: "Add Action" }));
await user.click(await screen.findByRole("button", { name: "Add Plugin" }));
await waitFor(() =>
expect(screen.getByRole("button", { name: "Add Action" })).toBeEnabled()
expect(screen.getByRole("button", { name: "Add Plugin" })).toBeEnabled()
);
expect(screen.getByRole("dialog")).toBeInTheDocument();
expect(onCreated).not.toHaveBeenCalled();
@@ -326,7 +326,7 @@ test("keeps OAuth settings through Back and saves them only on final creation",
await screen.findByRole("textbox", { name: "OAuth Client ID" })
).toHaveValue("release-client");
expect(writes).toEqual([]);
const submit = screen.getByRole("button", { name: "Add Action" });
const submit = screen.getByRole("button", { name: "Add Plugin" });
await waitFor(() => expect(submit).toBeEnabled());
await user.click(submit);
await waitFor(() => expect(onCreated).toHaveBeenCalledWith(42));
@@ -460,9 +460,9 @@ describe("authentication save retries", () => {
target: { value: "release-secret" },
});
await waitFor(() =>
expect(screen.getByRole("button", { name: "Add Action" })).toBeEnabled()
expect(screen.getByRole("button", { name: "Add Plugin" })).toBeEnabled()
);
await user.click(screen.getByRole("button", { name: "Add Action" }));
await user.click(screen.getByRole("button", { name: "Add Plugin" }));
await waitFor(() => expect(failRefresh).toBe(false));
expect(onCreated).not.toHaveBeenCalled();
expect(
@@ -472,7 +472,7 @@ describe("authentication save retries", () => {
if (retry === "failed refresh") {
failRefresh = true;
const updateCount = updates.length;
await user.click(screen.getByRole("button", { name: "Add Action" }));
await user.click(screen.getByRole("button", { name: "Add Plugin" }));
await waitFor(() => expect(failRefresh).toBe(false));
expect(updates).toHaveLength(updateCount);
expect(onCreated).not.toHaveBeenCalled();
@@ -500,7 +500,7 @@ describe("authentication save retries", () => {
);
await user.click(screen.getByRole("button", { name: "Continue" }));
}
await user.click(screen.getByRole("button", { name: "Add Action" }));
await user.click(screen.getByRole("button", { name: "Add Plugin" }));
await waitFor(() => expect(onCreated).toHaveBeenCalledWith(42));
expect(toolCreates).toBe(1);
expect(configCreates).toBe(1);
@@ -784,7 +784,7 @@ describe.each(["metadata", "schema", "authentication"] as const)(
await screen.findByText(
editor === "authentication"
? "Only the action's creator or an admin can manage authentication"
: "Failed to update OpenAPI action"
: "Failed to update OpenAPI plugin"
)
).toBeVisible();
expect(freshRead).toHaveBeenCalledTimes(1);
@@ -34,7 +34,7 @@ export class AdminOpenApiPluginPage {
await dialog.getByRole("button", { name: "Continue", exact: true }).click();
await this.page
.getByRole("dialog", { name: `Connect to ${name}`, exact: true })
.getByRole("button", { name: "Add Action", exact: true })
.getByRole("button", { name: "Add Plugin", exact: true })
.click();
await this.expectDetail(name);
const match = new URL(this.page.url()).pathname.match(/\/openapi\/(\d+)$/);