diff --git a/web/features/agent-v2/agent-detail/configure/__tests__/page.spec.tsx b/web/features/agent-v2/agent-detail/configure/__tests__/page.spec.tsx index 532bce01ce8..58a23e2be32 100644 --- a/web/features/agent-v2/agent-detail/configure/__tests__/page.spec.tsx +++ b/web/features/agent-v2/agent-detail/configure/__tests__/page.spec.tsx @@ -139,6 +139,23 @@ vi.mock('@/service/client', () => ({ }, })) +vi.mock('../build-draft-query', () => ({ + agentConfigureConsoleQuery: { + agent: { + byAgentId: { + buildDraft: { + get: { + queryOptions: () => ({ + queryFn: vi.fn(), + queryKey: ['build-draft'], + }), + }, + }, + }, + }, + }, +})) + vi.mock('@/app/components/header/account-setting/model-provider-page/hooks', () => ({ useDefaultModel: () => ({ data: undefined }), useTextGenerationCurrentProviderAndModelAndModelList: () => ({ @@ -149,10 +166,12 @@ vi.mock('@/app/components/header/account-setting/model-provider-page/hooks', () vi.mock('../components/orchestrate', () => ({ AgentOrchestratePanel: (props: { bottomBar?: ReactNode + isBuildDraftActive?: boolean readOnly?: boolean showPublishBar?: boolean }) => (
+ {`buildDraft:${props.isBuildDraftActive ? 'yes' : 'no'}`} {`readonly:${props.readOnly ? 'yes' : 'no'}`} {`publish:${props.showPublishBar ? 'yes' : 'no'}`} {props.bottomBar} @@ -416,6 +435,7 @@ describe('AgentConfigurePage', () => { ) expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('readonly:no') + expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('buildDraft:no') expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('publish:yes') expect(screen.queryByRole('region', { name: 'build-draft-bar' })).not.toBeInTheDocument() }) @@ -462,6 +482,7 @@ describe('AgentConfigurePage', () => { ) expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('readonly:yes') + expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('buildDraft:yes') expect(screen.getByRole('region', { name: 'orchestrate-panel' })).toHaveTextContent('publish:no') expect(screen.getByRole('region', { name: 'build-draft-bar' })).toBeInTheDocument() }) diff --git a/web/features/agent-v2/agent-detail/configure/build-draft-query.ts b/web/features/agent-v2/agent-detail/configure/build-draft-query.ts new file mode 100644 index 00000000000..c1799c61e83 --- /dev/null +++ b/web/features/agent-v2/agent-detail/configure/build-draft-query.ts @@ -0,0 +1,38 @@ +'use client' + +import type { ContractRouterClient } from '@orpc/contract' +import type { JsonifiedClient } from '@orpc/openapi-client' +import { createORPCClient } from '@orpc/client' +import { OpenAPILink } from '@orpc/openapi-client/fetch' +import { createTanstackQueryUtils } from '@orpc/tanstack-query' +import { API_PREFIX } from '@/config' +import { consoleRouterContract } from '@/contract/router' +// eslint-disable-next-line no-restricted-imports +import { request } from '@/service/base' +import { getBaseURL } from '@/service/client' + +type AgentConfigureConsoleClientContext = { + silent?: boolean +} + +const agentConfigureConsoleLink = new OpenAPILink(consoleRouterContract, { + url: getBaseURL(API_PREFIX), + fetch: (input, init, options) => { + return request( + input.url, + init, + { + fetchCompat: true, + request: input, + silent: options.context.silent, + }, + ) + }, +}) + +const agentConfigureConsoleClient: JsonifiedClient> + = createORPCClient(agentConfigureConsoleLink) + +export const agentConfigureConsoleQuery = createTanstackQueryUtils(agentConfigureConsoleClient, { + path: ['console'], +}) diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/header.spec.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/header.spec.tsx new file mode 100644 index 00000000000..0282b1e2bc2 --- /dev/null +++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/__tests__/header.spec.tsx @@ -0,0 +1,18 @@ +import { render, screen } from '@testing-library/react' +import { AgentOrchestrateHeader } from '../header' + +describe('AgentOrchestrateHeader', () => { + it('should render configure title without build mode copy by default', () => { + render() + + expect(screen.getByRole('heading', { name: 'agentV2.agentDetail.configure.title' })).toBeInTheDocument() + expect(screen.queryByText('agentV2.agentDetail.configure.buildDraft.modeBadge')).not.toBeInTheDocument() + }) + + it('should render build mode copy when build draft is active', () => { + render() + + expect(screen.getByText('agentV2.agentDetail.configure.buildDraft.modeBadge')).toBeInTheDocument() + expect(screen.getByText('agentV2.agentDetail.configure.buildDraft.modeDescription')).toBeInTheDocument() + }) +}) diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/header.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/header.tsx index 36d11483928..452e57e6643 100644 --- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/header.tsx +++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/header.tsx @@ -4,20 +4,32 @@ import { useTranslation } from 'react-i18next' type AgentOrchestrateHeaderProps = { headingId: string + isBuildDraftActive?: boolean } export function AgentOrchestrateHeader({ headingId, + isBuildDraftActive = false, }: AgentOrchestrateHeaderProps) { const { t } = useTranslation('agentV2') return ( -
-
+
+

- {t('agentDetail.configure.orchestrate')} + {t('agentDetail.configure.title')}

+ {isBuildDraftActive && ( + + {t('agentDetail.configure.buildDraft.modeBadge')} + + )}
+ {isBuildDraftActive && ( +

+ {t('agentDetail.configure.buildDraft.modeDescription')} +

+ )}
) } diff --git a/web/features/agent-v2/agent-detail/configure/components/orchestrate/index.tsx b/web/features/agent-v2/agent-detail/configure/components/orchestrate/index.tsx index 625e3517770..1c828e0129e 100644 --- a/web/features/agent-v2/agent-detail/configure/components/orchestrate/index.tsx +++ b/web/features/agent-v2/agent-detail/configure/components/orchestrate/index.tsx @@ -35,6 +35,7 @@ type AgentOrchestratePanelProps = { className?: string readOnly?: boolean selectedVersionSnapshot?: AgentConfigSnapshotSummaryResponse | null + isBuildDraftActive?: boolean showHeader?: boolean showPublishBar?: boolean bottomBar?: ReactNode @@ -59,6 +60,7 @@ export function AgentOrchestratePanel({ className, readOnly = false, selectedVersionSnapshot, + isBuildDraftActive = false, showHeader = true, showPublishBar = true, bottomBar, @@ -69,7 +71,7 @@ export function AgentOrchestratePanel({ }: AgentOrchestratePanelProps) { const { t } = useTranslation('agentV2') const orchestrateHeadingId = 'agent-configure-orchestrate-heading' - const orchestrateLabel = t('agentDetail.configure.orchestrate') + const orchestrateLabel = t('agentDetail.configure.title') const hasBottomBar = showPublishBar || !!bottomBar const driveApiContext = useMemo(() => appId && nodeId ? { @@ -83,7 +85,7 @@ export function AgentOrchestratePanel({ return (
- {showHeader && } + {showHeader && }
(null) - const buildDraftQueryOptions = consoleQuery.agent.byAgentId.buildDraft.get.queryOptions({ - input: { - params: { - agent_id: agentId, - }, + const buildDraftQueryInput = { + params: { + agent_id: agentId, }, + } + const buildDraftQueryOptions = agentConfigureConsoleQuery.agent.byAgentId.buildDraft.get.queryOptions({ + input: { + params: buildDraftQueryInput.params, + }, + context: {}, + }) + const silentBuildDraftQueryOptions = agentConfigureConsoleQuery.agent.byAgentId.buildDraft.get.queryOptions({ + input: { + params: buildDraftQueryInput.params, + }, + context: { + silent: true, + }, + queryKey: buildDraftQueryOptions.queryKey, }) const buildDraftQuery = useQuery({ ...buildDraftQueryOptions, enabled: !isViewingVersion && soulSourceOverride !== 'draft' && soulSourceOverride !== 'view-version', queryFn: async (context) => { try { - return await buildDraftQueryOptions.queryFn(context) + const queryOptions = shouldSilenceBuildDraftCheckRef.current + ? silentBuildDraftQueryOptions + : buildDraftQueryOptions + + shouldSilenceBuildDraftCheckRef.current = false + return await queryOptions.queryFn(context) } catch (error) { if (isNotFoundResponse(error)) diff --git a/web/i18n/ar-TN/agent-v-2.json b/web/i18n/ar-TN/agent-v-2.json index 14f075f6f05..357491d7fdd 100644 --- a/web/i18n/ar-TN/agent-v-2.json +++ b/web/i18n/ar-TN/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "ابدأ البناء", "agentDetail.configure.buildDraft.changes": "{{count}} تغييرات للتطبيق", "agentDetail.configure.buildDraft.discard": "تجاهل", + "agentDetail.configure.buildDraft.modeBadge": "وضع البناء", + "agentDetail.configure.buildDraft.modeDescription": "أنت في وضع البناء. شكّل هذا الإعداد عبر الدردشة على اليمين، ثم طبّق.", "agentDetail.configure.buildDraft.noChanges": "لا توجد تغييرات للتطبيق", "agentDetail.configure.buildDraft.title": "مسودة البناء", "agentDetail.configure.chatFeatures.description": "شكّل تجربة الدردشة للمستخدم النهائي على Web app وأسطح الدردشة.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "قم بتحميل ملف .zip أو .skill.", "agentDetail.configure.skills.upload.success": "تم تحميل المهارة.", "agentDetail.configure.skills.upload.title": "تحميل مهارة", + "agentDetail.configure.title": "تكوين", "agentDetail.configure.tools.add": "إضافة أداة", "agentDetail.configure.tools.addMenu.cliTool.badge": "للمطورين", "agentDetail.configure.tools.addMenu.cliTool.description": "ثبّت برنامج سطر أوامر يقوم الوكيل بتشغيله في sandbox الخاص به. يحتاج إلى تثبيت وعادةً إلى API Key.", diff --git a/web/i18n/de-DE/agent-v-2.json b/web/i18n/de-DE/agent-v-2.json index c13af050d4b..3358fba40a7 100644 --- a/web/i18n/de-DE/agent-v-2.json +++ b/web/i18n/de-DE/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Build starten", "agentDetail.configure.buildDraft.changes": "{{count}} Änderungen anzuwenden", "agentDetail.configure.buildDraft.discard": "Verwerfen", + "agentDetail.configure.buildDraft.modeBadge": "Build-Modus", + "agentDetail.configure.buildDraft.modeDescription": "Sie sind im Build-Modus. Formen Sie diese Einrichtung über den Chat rechts und wenden Sie sie dann an.", "agentDetail.configure.buildDraft.noChanges": "Keine Änderungen anzuwenden", "agentDetail.configure.buildDraft.title": "Build-Entwurf", "agentDetail.configure.chatFeatures.description": "Gestalten Sie das Chat-Erlebnis für Endnutzer in Ihrer Webapp und in Chat-Oberflächen.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Bitte eine .zip- oder .skill-Datei hochladen.", "agentDetail.configure.skills.upload.success": "Skill hochgeladen.", "agentDetail.configure.skills.upload.title": "Skill hochladen", + "agentDetail.configure.title": "Konfigurieren", "agentDetail.configure.tools.add": "Tool hinzufügen", "agentDetail.configure.tools.addMenu.cliTool.badge": "Für Entwickler", "agentDetail.configure.tools.addMenu.cliTool.description": "Installieren Sie ein Befehlszeilenprogramm, das der Agent in seiner Sandbox ausführt. Benötigt eine Installation und in der Regel API-Keys.", diff --git a/web/i18n/en-US/agent-v-2.json b/web/i18n/en-US/agent-v-2.json index 006fc77c0f3..aba13803915 100644 --- a/web/i18n/en-US/agent-v-2.json +++ b/web/i18n/en-US/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Start build", "agentDetail.configure.buildDraft.changes": "{{count}} changes to apply", "agentDetail.configure.buildDraft.discard": "Discard", + "agentDetail.configure.buildDraft.modeBadge": "Build mode", + "agentDetail.configure.buildDraft.modeDescription": "You're in build mode. Shape this setup through the chat on the right, then Apply.", "agentDetail.configure.buildDraft.noChanges": "No changes to apply", "agentDetail.configure.buildDraft.title": "Build draft", "agentDetail.configure.chatFeatures.description": "Shape the end-user chat experience on your web app and chat surfaces.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Upload a .zip or .skill file.", "agentDetail.configure.skills.upload.success": "Skill uploaded.", "agentDetail.configure.skills.upload.title": "Upload skill", + "agentDetail.configure.title": "Configure", "agentDetail.configure.tools.add": "Add tool", "agentDetail.configure.tools.addMenu.cliTool.badge": "For developers", "agentDetail.configure.tools.addMenu.cliTool.description": "Install a command line program the agent runs in its sandbox. Needs install and usually API keys.", diff --git a/web/i18n/es-ES/agent-v-2.json b/web/i18n/es-ES/agent-v-2.json index 9073d6b1870..8cf2d73f199 100644 --- a/web/i18n/es-ES/agent-v-2.json +++ b/web/i18n/es-ES/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Iniciar compilación", "agentDetail.configure.buildDraft.changes": "{{count}} cambios por aplicar", "agentDetail.configure.buildDraft.discard": "Descartar", + "agentDetail.configure.buildDraft.modeBadge": "Modo build", + "agentDetail.configure.buildDraft.modeDescription": "Estás en modo build. Ajusta esta configuración con el chat de la derecha y luego aplica los cambios.", "agentDetail.configure.buildDraft.noChanges": "No hay cambios por aplicar", "agentDetail.configure.buildDraft.title": "Borrador de compilación", "agentDetail.configure.chatFeatures.description": "Da forma a la experiencia de chat del usuario final en tu webapp y superficies de chat.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Sube un archivo .zip o .skill.", "agentDetail.configure.skills.upload.success": "Habilidad subida.", "agentDetail.configure.skills.upload.title": "Subir habilidad", + "agentDetail.configure.title": "Configurar", "agentDetail.configure.tools.add": "Agregar herramienta", "agentDetail.configure.tools.addMenu.cliTool.badge": "Para desarrolladores", "agentDetail.configure.tools.addMenu.cliTool.description": "Instala un programa de línea de comandos que el agente ejecuta en su sandbox. Requiere instalación y normalmente claves API.", diff --git a/web/i18n/fa-IR/agent-v-2.json b/web/i18n/fa-IR/agent-v-2.json index 2db59e0b231..96e3f8846b9 100644 --- a/web/i18n/fa-IR/agent-v-2.json +++ b/web/i18n/fa-IR/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "شروع ساخت", "agentDetail.configure.buildDraft.changes": "{{count}} تغییر برای اعمال", "agentDetail.configure.buildDraft.discard": "رد کردن", + "agentDetail.configure.buildDraft.modeBadge": "حالت ساخت", + "agentDetail.configure.buildDraft.modeDescription": "شما در حالت ساخت هستید. این تنظیمات را از طریق چت سمت راست شکل دهید، سپس اعمال کنید.", "agentDetail.configure.buildDraft.noChanges": "تغییری برای اعمال وجود ندارد", "agentDetail.configure.buildDraft.title": "پیش نویس ساخت", "agentDetail.configure.chatFeatures.description": "تجربه چت کاربر نهایی را در Web app و سطوح چت خود شکل دهید.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "یک فایل .zip یا .skill بارگذاری کنید.", "agentDetail.configure.skills.upload.success": "مهارت بارگذاری شد.", "agentDetail.configure.skills.upload.title": "بارگذاری مهارت", + "agentDetail.configure.title": "پیکربندی", "agentDetail.configure.tools.add": "افزودن ابزار", "agentDetail.configure.tools.addMenu.cliTool.badge": "برای توسعه‌دهندگان", "agentDetail.configure.tools.addMenu.cliTool.description": "یک برنامه خط فرمان نصب کنید که عامل آن را در sandbox خود اجرا می‌کند. به نصب و معمولاً API Key نیاز دارد.", diff --git a/web/i18n/fr-FR/agent-v-2.json b/web/i18n/fr-FR/agent-v-2.json index 4ccdab728d4..cf81a1edafc 100644 --- a/web/i18n/fr-FR/agent-v-2.json +++ b/web/i18n/fr-FR/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Démarrer la création", "agentDetail.configure.buildDraft.changes": "{{count}} modifications à appliquer", "agentDetail.configure.buildDraft.discard": "Ignorer", + "agentDetail.configure.buildDraft.modeBadge": "Mode build", + "agentDetail.configure.buildDraft.modeDescription": "Vous êtes en mode build. Ajustez cette configuration avec le chat à droite, puis appliquez.", "agentDetail.configure.buildDraft.noChanges": "Aucune modification à appliquer", "agentDetail.configure.buildDraft.title": "Brouillon de build", "agentDetail.configure.chatFeatures.description": "Façonnez l’expérience de chat de l’utilisateur final sur votre webapp et vos surfaces de chat.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Téléversez un fichier .zip ou .skill.", "agentDetail.configure.skills.upload.success": "Compétence téléversée.", "agentDetail.configure.skills.upload.title": "Téléverser une compétence", + "agentDetail.configure.title": "Configurer", "agentDetail.configure.tools.add": "Ajouter un outil", "agentDetail.configure.tools.addMenu.cliTool.badge": "Pour les développeurs", "agentDetail.configure.tools.addMenu.cliTool.description": "Installez un programme en ligne de commande que l’agent exécute dans son sandbox. Nécessite une installation et généralement des clés API.", diff --git a/web/i18n/hi-IN/agent-v-2.json b/web/i18n/hi-IN/agent-v-2.json index 55ad92a682f..8ac6449c09c 100644 --- a/web/i18n/hi-IN/agent-v-2.json +++ b/web/i18n/hi-IN/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "बिल्ड शुरू करें", "agentDetail.configure.buildDraft.changes": "{{count}} बदलाव लागू करने हैं", "agentDetail.configure.buildDraft.discard": "छोड़ें", + "agentDetail.configure.buildDraft.modeBadge": "बिल्ड मोड", + "agentDetail.configure.buildDraft.modeDescription": "आप बिल्ड मोड में हैं। दाईं ओर की चैट से इस सेटअप को आकार दें, फिर लागू करें।", "agentDetail.configure.buildDraft.noChanges": "लागू करने के लिए कोई बदलाव नहीं", "agentDetail.configure.buildDraft.title": "बिल्ड ड्राफ्ट", "agentDetail.configure.chatFeatures.description": "अपने Web app और चैट सतहों पर अंतिम-उपयोगकर्ता चैट अनुभव को आकार दें।", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "एक .zip या .skill फ़ाइल अपलोड करें।", "agentDetail.configure.skills.upload.success": "कौशल अपलोड हो गया।", "agentDetail.configure.skills.upload.title": "कौशल अपलोड करें", + "agentDetail.configure.title": "कॉन्फ़िगर करें", "agentDetail.configure.tools.add": "उपकरण जोड़ें", "agentDetail.configure.tools.addMenu.cliTool.badge": "डेवलपर्स के लिए", "agentDetail.configure.tools.addMenu.cliTool.description": "एक कमांड लाइन प्रोग्राम स्थापित करें जिसे एजेंट अपने सैंडबॉक्स में चलाता है। स्थापना और आमतौर पर API Key की आवश्यकता होती है।", diff --git a/web/i18n/id-ID/agent-v-2.json b/web/i18n/id-ID/agent-v-2.json index d9f168cddf0..63ae772329b 100644 --- a/web/i18n/id-ID/agent-v-2.json +++ b/web/i18n/id-ID/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Mulai build", "agentDetail.configure.buildDraft.changes": "{{count}} perubahan untuk diterapkan", "agentDetail.configure.buildDraft.discard": "Buang", + "agentDetail.configure.buildDraft.modeBadge": "Mode build", + "agentDetail.configure.buildDraft.modeDescription": "Anda berada dalam mode build. Bentuk pengaturan ini lewat chat di kanan, lalu terapkan.", "agentDetail.configure.buildDraft.noChanges": "Tidak ada perubahan untuk diterapkan", "agentDetail.configure.buildDraft.title": "Draf build", "agentDetail.configure.chatFeatures.description": "Bentuk pengalaman chat pengguna akhir di Web app dan permukaan chat Anda.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Unggah file .zip atau .skill.", "agentDetail.configure.skills.upload.success": "Keterampilan diunggah.", "agentDetail.configure.skills.upload.title": "Unggah keterampilan", + "agentDetail.configure.title": "Konfigurasi", "agentDetail.configure.tools.add": "Tambahkan alat", "agentDetail.configure.tools.addMenu.cliTool.badge": "Untuk pengembang", "agentDetail.configure.tools.addMenu.cliTool.description": "Pasang program command line yang dijalankan agen di sandbox-nya. Memerlukan instalasi dan biasanya API Key.", diff --git a/web/i18n/it-IT/agent-v-2.json b/web/i18n/it-IT/agent-v-2.json index 88638a24c8b..523dcdb683a 100644 --- a/web/i18n/it-IT/agent-v-2.json +++ b/web/i18n/it-IT/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Avvia build", "agentDetail.configure.buildDraft.changes": "{{count}} modifiche da applicare", "agentDetail.configure.buildDraft.discard": "Scarta", + "agentDetail.configure.buildDraft.modeBadge": "Modalità build", + "agentDetail.configure.buildDraft.modeDescription": "Sei in modalità build. Modella questa configurazione tramite la chat a destra, poi applica.", "agentDetail.configure.buildDraft.noChanges": "Nessuna modifica da applicare", "agentDetail.configure.buildDraft.title": "Bozza di build", "agentDetail.configure.chatFeatures.description": "Definisci l’esperienza di chat per l’utente finale sulla tua webapp e sulle superfici di chat.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Carica un file .zip o .skill.", "agentDetail.configure.skills.upload.success": "Abilità caricata.", "agentDetail.configure.skills.upload.title": "Carica abilità", + "agentDetail.configure.title": "Configura", "agentDetail.configure.tools.add": "Aggiungi strumento", "agentDetail.configure.tools.addMenu.cliTool.badge": "Per sviluppatori", "agentDetail.configure.tools.addMenu.cliTool.description": "Installa un programma a riga di comando che l’agente esegue nel suo sandbox. Richiede installazione e di solito chiavi API.", diff --git a/web/i18n/ja-JP/agent-v-2.json b/web/i18n/ja-JP/agent-v-2.json index f1373635ac2..c011d7f27c9 100644 --- a/web/i18n/ja-JP/agent-v-2.json +++ b/web/i18n/ja-JP/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "ビルドを開始", "agentDetail.configure.buildDraft.changes": "適用する変更 {{count}} 件", "agentDetail.configure.buildDraft.discard": "破棄", + "agentDetail.configure.buildDraft.modeBadge": "ビルドモード", + "agentDetail.configure.buildDraft.modeDescription": "ビルドモードです。右側のチャットでこの設定を調整してから適用してください。", "agentDetail.configure.buildDraft.noChanges": "適用する変更はありません", "agentDetail.configure.buildDraft.title": "ビルドドラフト", "agentDetail.configure.chatFeatures.description": "Web app やチャット画面でのエンドユーザー向けチャット体験を設定します。", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": ".zip または .skill ファイルをアップロードしてください。", "agentDetail.configure.skills.upload.success": "スキルをアップロードしました。", "agentDetail.configure.skills.upload.title": "スキルをアップロード", + "agentDetail.configure.title": "設定", "agentDetail.configure.tools.add": "ツールを追加", "agentDetail.configure.tools.addMenu.cliTool.badge": "開発者向け", "agentDetail.configure.tools.addMenu.cliTool.description": "エージェントがサンドボックス内で実行するコマンドラインプログラムをインストールします。インストールと通常 API Key が必要です。", diff --git a/web/i18n/ko-KR/agent-v-2.json b/web/i18n/ko-KR/agent-v-2.json index fc52c7cdfb5..ff718764c54 100644 --- a/web/i18n/ko-KR/agent-v-2.json +++ b/web/i18n/ko-KR/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "빌드 시작", "agentDetail.configure.buildDraft.changes": "적용할 변경 사항 {{count}}개", "agentDetail.configure.buildDraft.discard": "폐기", + "agentDetail.configure.buildDraft.modeBadge": "빌드 모드", + "agentDetail.configure.buildDraft.modeDescription": "빌드 모드입니다. 오른쪽 채팅으로 이 설정을 다듬은 뒤 적용하세요.", "agentDetail.configure.buildDraft.noChanges": "적용할 변경 사항 없음", "agentDetail.configure.buildDraft.title": "빌드 초안", "agentDetail.configure.chatFeatures.description": "Web app 및 채팅 화면에서의 최종 사용자 채팅 경험을 구성합니다.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": ".zip 또는 .skill 파일을 업로드하세요.", "agentDetail.configure.skills.upload.success": "스킬을 업로드했습니다.", "agentDetail.configure.skills.upload.title": "스킬 업로드", + "agentDetail.configure.title": "구성", "agentDetail.configure.tools.add": "도구 추가", "agentDetail.configure.tools.addMenu.cliTool.badge": "개발자용", "agentDetail.configure.tools.addMenu.cliTool.description": "에이전트가 샌드박스에서 실행할 명령줄 프로그램을 설치합니다. 설치가 필요하며 일반적으로 API Key 가 필요합니다.", diff --git a/web/i18n/nl-NL/agent-v-2.json b/web/i18n/nl-NL/agent-v-2.json index f2bfd786c30..6d95223e108 100644 --- a/web/i18n/nl-NL/agent-v-2.json +++ b/web/i18n/nl-NL/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Build starten", "agentDetail.configure.buildDraft.changes": "{{count}} wijzigingen om toe te passen", "agentDetail.configure.buildDraft.discard": "Negeren", + "agentDetail.configure.buildDraft.modeBadge": "Buildmodus", + "agentDetail.configure.buildDraft.modeDescription": "Je bent in buildmodus. Werk deze configuratie bij via de chat rechts en pas daarna toe.", "agentDetail.configure.buildDraft.noChanges": "Geen wijzigingen om toe te passen", "agentDetail.configure.buildDraft.title": "Buildconcept", "agentDetail.configure.chatFeatures.description": "Geef vorm aan de chatervaring voor eindgebruikers in je webapp en chatoppervlakken.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Upload een .zip- of .skill-bestand.", "agentDetail.configure.skills.upload.success": "Skill geüpload.", "agentDetail.configure.skills.upload.title": "Skill uploaden", + "agentDetail.configure.title": "Configureren", "agentDetail.configure.tools.add": "Tool toevoegen", "agentDetail.configure.tools.addMenu.cliTool.badge": "Voor ontwikkelaars", "agentDetail.configure.tools.addMenu.cliTool.description": "Installeer een commandoregelprogramma dat de agent in zijn sandbox uitvoert. Vereist installatie en meestal API-keys.", diff --git a/web/i18n/pl-PL/agent-v-2.json b/web/i18n/pl-PL/agent-v-2.json index f90a416c9c1..e685b33c838 100644 --- a/web/i18n/pl-PL/agent-v-2.json +++ b/web/i18n/pl-PL/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Rozpocznij budowanie", "agentDetail.configure.buildDraft.changes": "{{count}} zmian do zastosowania", "agentDetail.configure.buildDraft.discard": "Odrzuć", + "agentDetail.configure.buildDraft.modeBadge": "Tryb budowania", + "agentDetail.configure.buildDraft.modeDescription": "Jesteś w trybie budowania. Dostosuj tę konfigurację przez czat po prawej, a następnie zastosuj.", "agentDetail.configure.buildDraft.noChanges": "Brak zmian do zastosowania", "agentDetail.configure.buildDraft.title": "Szkic budowania", "agentDetail.configure.chatFeatures.description": "Ukształtuj doświadczenie czatu użytkownika końcowego w aplikacji webowej i powierzchniach czatu.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Prześlij plik .zip lub .skill.", "agentDetail.configure.skills.upload.success": "Umiejętność przesłana.", "agentDetail.configure.skills.upload.title": "Prześlij umiejętność", + "agentDetail.configure.title": "Konfiguruj", "agentDetail.configure.tools.add": "Dodaj narzędzie", "agentDetail.configure.tools.addMenu.cliTool.badge": "Dla deweloperów", "agentDetail.configure.tools.addMenu.cliTool.description": "Zainstaluj program wiersza poleceń, który agent uruchamia w sandboxie. Wymaga instalacji i zwykle API Key.", diff --git a/web/i18n/pt-BR/agent-v-2.json b/web/i18n/pt-BR/agent-v-2.json index 45a152fff00..641ca08f97e 100644 --- a/web/i18n/pt-BR/agent-v-2.json +++ b/web/i18n/pt-BR/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Iniciar build", "agentDetail.configure.buildDraft.changes": "{{count}} alterações para aplicar", "agentDetail.configure.buildDraft.discard": "Descartar", + "agentDetail.configure.buildDraft.modeBadge": "Modo build", + "agentDetail.configure.buildDraft.modeDescription": "Você está no modo build. Ajuste esta configuração pelo chat à direita e depois aplique.", "agentDetail.configure.buildDraft.noChanges": "Nenhuma alteração para aplicar", "agentDetail.configure.buildDraft.title": "Rascunho de build", "agentDetail.configure.chatFeatures.description": "Modele a experiência de chat do usuário final no seu webapp e superfícies de chat.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Envie um arquivo .zip ou .skill.", "agentDetail.configure.skills.upload.success": "Habilidade enviada.", "agentDetail.configure.skills.upload.title": "Enviar habilidade", + "agentDetail.configure.title": "Configurar", "agentDetail.configure.tools.add": "Adicionar ferramenta", "agentDetail.configure.tools.addMenu.cliTool.badge": "Para desenvolvedores", "agentDetail.configure.tools.addMenu.cliTool.description": "Instale um programa de linha de comando que o agente executa em seu sandbox. Requer instalação e geralmente chaves de API.", diff --git a/web/i18n/ro-RO/agent-v-2.json b/web/i18n/ro-RO/agent-v-2.json index f4bbe731a59..a2fed61c59f 100644 --- a/web/i18n/ro-RO/agent-v-2.json +++ b/web/i18n/ro-RO/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Pornește build-ul", "agentDetail.configure.buildDraft.changes": "{{count}} modificări de aplicat", "agentDetail.configure.buildDraft.discard": "Renunță", + "agentDetail.configure.buildDraft.modeBadge": "Mod build", + "agentDetail.configure.buildDraft.modeDescription": "Ești în modul build. Ajustează această configurare prin chatul din dreapta, apoi aplică.", "agentDetail.configure.buildDraft.noChanges": "Nu există modificări de aplicat", "agentDetail.configure.buildDraft.title": "Schiță de build", "agentDetail.configure.chatFeatures.description": "Modelează experiența de chat a utilizatorului final pe webapp-ul tău și pe suprafețele de chat.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Încărcați un fișier .zip sau .skill.", "agentDetail.configure.skills.upload.success": "Abilitate încărcată.", "agentDetail.configure.skills.upload.title": "Încarcă abilitate", + "agentDetail.configure.title": "Configurare", "agentDetail.configure.tools.add": "Adaugă instrument", "agentDetail.configure.tools.addMenu.cliTool.badge": "Pentru dezvoltatori", "agentDetail.configure.tools.addMenu.cliTool.description": "Instalați un program de linie de comandă pe care agentul îl rulează în sandbox-ul său. Necesită instalare și, de obicei, chei API.", diff --git a/web/i18n/ru-RU/agent-v-2.json b/web/i18n/ru-RU/agent-v-2.json index a9e75680b2d..ee16fec9b08 100644 --- a/web/i18n/ru-RU/agent-v-2.json +++ b/web/i18n/ru-RU/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Начать сборку", "agentDetail.configure.buildDraft.changes": "{{count}} изменений для применения", "agentDetail.configure.buildDraft.discard": "Отменить", + "agentDetail.configure.buildDraft.modeBadge": "Режим сборки", + "agentDetail.configure.buildDraft.modeDescription": "Вы в режиме сборки. Настройте эту конфигурацию через чат справа, затем примените изменения.", "agentDetail.configure.buildDraft.noChanges": "Нет изменений для применения", "agentDetail.configure.buildDraft.title": "Черновик сборки", "agentDetail.configure.chatFeatures.description": "Настройте чат-опыт конечного пользователя в вашем веб-приложении и чат-поверхностях.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Загрузите файл .zip или .skill.", "agentDetail.configure.skills.upload.success": "Навык загружен.", "agentDetail.configure.skills.upload.title": "Загрузить навык", + "agentDetail.configure.title": "Настроить", "agentDetail.configure.tools.add": "Добавить инструмент", "agentDetail.configure.tools.addMenu.cliTool.badge": "Для разработчиков", "agentDetail.configure.tools.addMenu.cliTool.description": "Установите программу командной строки, которую агент запускает в песочнице. Требуется установка, обычно также API Key.", diff --git a/web/i18n/sl-SI/agent-v-2.json b/web/i18n/sl-SI/agent-v-2.json index a36928cd8fe..ec4849c3bed 100644 --- a/web/i18n/sl-SI/agent-v-2.json +++ b/web/i18n/sl-SI/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Začni gradnjo", "agentDetail.configure.buildDraft.changes": "{{count}} sprememb za uporabo", "agentDetail.configure.buildDraft.discard": "Zavrzi", + "agentDetail.configure.buildDraft.modeBadge": "Način gradnje", + "agentDetail.configure.buildDraft.modeDescription": "Ste v načinu gradnje. Nastavitev oblikujte s klepetom na desni, nato jo uporabite.", "agentDetail.configure.buildDraft.noChanges": "Ni sprememb za uporabo", "agentDetail.configure.buildDraft.title": "Osnutek gradnje", "agentDetail.configure.chatFeatures.description": "Oblikujte uporabniško izkušnjo klepeta v vaši spletni aplikaciji in klepetalnih površinah.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Naložite datoteko .zip ali .skill.", "agentDetail.configure.skills.upload.success": "Veščina naložena.", "agentDetail.configure.skills.upload.title": "Naloži veščino", + "agentDetail.configure.title": "Konfiguriraj", "agentDetail.configure.tools.add": "Dodaj orodje", "agentDetail.configure.tools.addMenu.cliTool.badge": "Za razvijalce", "agentDetail.configure.tools.addMenu.cliTool.description": "Namestite program ukazne vrstice, ki ga agent zaganja v svojem sandboxu. Potrebuje namestitev in običajno tudi API Key.", diff --git a/web/i18n/th-TH/agent-v-2.json b/web/i18n/th-TH/agent-v-2.json index 86beff4eed1..626bef83b4f 100644 --- a/web/i18n/th-TH/agent-v-2.json +++ b/web/i18n/th-TH/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "เริ่มสร้าง", "agentDetail.configure.buildDraft.changes": "{{count}} รายการเปลี่ยนแปลงที่ต้องใช้", "agentDetail.configure.buildDraft.discard": "ทิ้ง", + "agentDetail.configure.buildDraft.modeBadge": "โหมด Build", + "agentDetail.configure.buildDraft.modeDescription": "คุณอยู่ในโหมด Build ปรับแต่งการตั้งค่านี้ผ่านแชททางขวา แล้วกดนำไปใช้", "agentDetail.configure.buildDraft.noChanges": "ไม่มีการเปลี่ยนแปลงที่ต้องใช้", "agentDetail.configure.buildDraft.title": "ฉบับร่าง Build", "agentDetail.configure.chatFeatures.description": "กำหนดประสบการณ์การแชทของผู้ใช้ปลายทางบน Web app และหน้าจอแชท", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "อัปโหลดไฟล์ .zip หรือ .skill", "agentDetail.configure.skills.upload.success": "อัปโหลดทักษะแล้ว", "agentDetail.configure.skills.upload.title": "อัปโหลดทักษะ", + "agentDetail.configure.title": "กำหนดค่า", "agentDetail.configure.tools.add": "เพิ่มเครื่องมือ", "agentDetail.configure.tools.addMenu.cliTool.badge": "สำหรับนักพัฒนา", "agentDetail.configure.tools.addMenu.cliTool.description": "ติดตั้งโปรแกรมคำสั่งบรรทัดที่ตัวแทนรันในแซนด์บ็อกซ์ ต้องติดตั้งและมักต้องการ API Key", diff --git a/web/i18n/tr-TR/agent-v-2.json b/web/i18n/tr-TR/agent-v-2.json index 9c87f80ea49..5e0d69fbf40 100644 --- a/web/i18n/tr-TR/agent-v-2.json +++ b/web/i18n/tr-TR/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Build’i başlat", "agentDetail.configure.buildDraft.changes": "Uygulanacak {{count}} değişiklik", "agentDetail.configure.buildDraft.discard": "Vazgeç", + "agentDetail.configure.buildDraft.modeBadge": "Build modu", + "agentDetail.configure.buildDraft.modeDescription": "Build modundasınız. Bu kurulumu sağdaki sohbetle şekillendirin, ardından uygulayın.", "agentDetail.configure.buildDraft.noChanges": "Uygulanacak değişiklik yok", "agentDetail.configure.buildDraft.title": "Build taslağı", "agentDetail.configure.chatFeatures.description": "Web app ve sohbet yüzeylerinizde son kullanıcı sohbet deneyimini şekillendirin.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Bir .zip veya .skill dosyası yükleyin.", "agentDetail.configure.skills.upload.success": "Beceri yüklendi.", "agentDetail.configure.skills.upload.title": "Beceri yükle", + "agentDetail.configure.title": "Yapılandır", "agentDetail.configure.tools.add": "Araç ekle", "agentDetail.configure.tools.addMenu.cliTool.badge": "Geliştiriciler için", "agentDetail.configure.tools.addMenu.cliTool.description": "Ajanın sandbox'ında çalıştırdığı bir komut satırı programı yükleyin. Kurulum ve genellikle API Key gerektirir.", diff --git a/web/i18n/uk-UA/agent-v-2.json b/web/i18n/uk-UA/agent-v-2.json index 96a29504867..e246cfa936c 100644 --- a/web/i18n/uk-UA/agent-v-2.json +++ b/web/i18n/uk-UA/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Почати збірку", "agentDetail.configure.buildDraft.changes": "{{count}} змін для застосування", "agentDetail.configure.buildDraft.discard": "Відхилити", + "agentDetail.configure.buildDraft.modeBadge": "Режим збірки", + "agentDetail.configure.buildDraft.modeDescription": "Ви в режимі збірки. Налаштуйте цю конфігурацію через чат праворуч, а потім застосуйте.", "agentDetail.configure.buildDraft.noChanges": "Немає змін для застосування", "agentDetail.configure.buildDraft.title": "Чернетка збірки", "agentDetail.configure.chatFeatures.description": "Налаштуйте чат-досвід кінцевого користувача у вашому веб-застосунку та чат-поверхнях.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Завантажте файл .zip або .skill.", "agentDetail.configure.skills.upload.success": "Навичку завантажено.", "agentDetail.configure.skills.upload.title": "Завантажити навичку", + "agentDetail.configure.title": "Налаштувати", "agentDetail.configure.tools.add": "Додати інструмент", "agentDetail.configure.tools.addMenu.cliTool.badge": "Для розробників", "agentDetail.configure.tools.addMenu.cliTool.description": "Встановіть програму командного рядка, яку агент запускає в пісочниці. Потрібне встановлення, зазвичай також API Key.", diff --git a/web/i18n/vi-VN/agent-v-2.json b/web/i18n/vi-VN/agent-v-2.json index 6cfd4f05875..49a40ac3fb6 100644 --- a/web/i18n/vi-VN/agent-v-2.json +++ b/web/i18n/vi-VN/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "Bắt đầu build", "agentDetail.configure.buildDraft.changes": "{{count}} thay đổi cần áp dụng", "agentDetail.configure.buildDraft.discard": "Hủy bỏ", + "agentDetail.configure.buildDraft.modeBadge": "Chế độ build", + "agentDetail.configure.buildDraft.modeDescription": "Bạn đang ở chế độ build. Điều chỉnh thiết lập này qua khung chat bên phải, rồi Áp dụng.", "agentDetail.configure.buildDraft.noChanges": "Không có thay đổi cần áp dụng", "agentDetail.configure.buildDraft.title": "Bản nháp build", "agentDetail.configure.chatFeatures.description": "Định hình trải nghiệm trò chuyện cho người dùng cuối trên Web app và các bề mặt trò chuyện.", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "Tải lên một tệp .zip hoặc .skill.", "agentDetail.configure.skills.upload.success": "Đã tải lên kỹ năng.", "agentDetail.configure.skills.upload.title": "Tải lên kỹ năng", + "agentDetail.configure.title": "Cấu hình", "agentDetail.configure.tools.add": "Thêm công cụ", "agentDetail.configure.tools.addMenu.cliTool.badge": "Dành cho nhà phát triển", "agentDetail.configure.tools.addMenu.cliTool.description": "Cài đặt một chương trình dòng lệnh mà tác nhân chạy trong sandbox của nó. Cần cài đặt và thường cần API Key.", diff --git a/web/i18n/zh-Hans/agent-v-2.json b/web/i18n/zh-Hans/agent-v-2.json index caf778f6dd7..cd01334788f 100644 --- a/web/i18n/zh-Hans/agent-v-2.json +++ b/web/i18n/zh-Hans/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "开始构建", "agentDetail.configure.buildDraft.changes": "{{count}} 项待应用更改", "agentDetail.configure.buildDraft.discard": "放弃", + "agentDetail.configure.buildDraft.modeBadge": "构建模式", + "agentDetail.configure.buildDraft.modeDescription": "你正在使用构建模式。通过右侧聊天调整此配置,然后应用。", "agentDetail.configure.buildDraft.noChanges": "没有待应用的更改", "agentDetail.configure.buildDraft.title": "Build 草稿", "agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天界面的终端用户聊天体验。", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "请上传 .zip 或 .skill 文件。", "agentDetail.configure.skills.upload.success": "技能已上传。", "agentDetail.configure.skills.upload.title": "上传技能", + "agentDetail.configure.title": "配置", "agentDetail.configure.tools.add": "添加工具", "agentDetail.configure.tools.addMenu.cliTool.badge": "开发者适用", "agentDetail.configure.tools.addMenu.cliTool.description": "安装 Agent 可在沙箱中运行的命令行程序。需要安装命令,通常还需要 API Key。", diff --git a/web/i18n/zh-Hant/agent-v-2.json b/web/i18n/zh-Hant/agent-v-2.json index 07b67f8b338..a1790f4e744 100644 --- a/web/i18n/zh-Hant/agent-v-2.json +++ b/web/i18n/zh-Hant/agent-v-2.json @@ -66,6 +66,8 @@ "agentDetail.configure.build.startBuild": "開始構建", "agentDetail.configure.buildDraft.changes": "{{count}} 項待套用變更", "agentDetail.configure.buildDraft.discard": "放棄", + "agentDetail.configure.buildDraft.modeBadge": "建置模式", + "agentDetail.configure.buildDraft.modeDescription": "你正在使用建置模式。透過右側聊天調整此設定,然後套用。", "agentDetail.configure.buildDraft.noChanges": "沒有待套用的變更", "agentDetail.configure.buildDraft.title": "Build 草稿", "agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天介面的終端使用者聊天體驗。", @@ -191,6 +193,7 @@ "agentDetail.configure.skills.upload.invalidFile": "請上傳 .zip 或 .skill 檔案。", "agentDetail.configure.skills.upload.success": "技能已上傳。", "agentDetail.configure.skills.upload.title": "上傳技能", + "agentDetail.configure.title": "設定", "agentDetail.configure.tools.add": "新增工具", "agentDetail.configure.tools.addMenu.cliTool.badge": "開發者適用", "agentDetail.configure.tools.addMenu.cliTool.description": "安裝 Agent 可在沙箱中執行的命令列程式。需要安裝命令,通常還需要 API Key。",