Merge remote-tracking branch 'origin/feat/agent-v2' into feat/agent-v2

This commit is contained in:
Yanli 盐粒 2026-06-23 17:57:54 +08:00
commit c9a3fa9a45
25 changed files with 41 additions and 24 deletions

View File

@ -346,6 +346,20 @@ describe('AgentConfigurePublishBar', () => {
)
})
it('should show unpublished state for local edits when the active snapshot is not loaded', () => {
renderPublishBar({
activeConfigIsPublished: true,
activeConfigSnapshot: null,
prompt: 'Updated system prompt',
})
expect(screen.getByText('agentV2.agentDetail.configure.publishBar.unpublishedChanges')).toBeInTheDocument()
expect(screen.getByRole('button', { name: /agentV2\.agentDetail\.configure\.publishBar\.publishUpdate/ })).toBeInTheDocument()
expect(hotkeyRegistrations.get('Mod+Shift+P')?.options).toEqual(
expect.objectContaining({ enabled: true, ignoreInputs: false }),
)
})
it('should initialize unpublished state when active config is not published', async () => {
const { onPublish } = renderPublishBar({
activeConfigIsPublished: false,

View File

@ -55,10 +55,13 @@ function getPublishState({
if (isPublishing)
return 'publishing'
if (isDirty)
return 'unpublished'
if (!activeConfigSnapshot)
return activeConfigIsPublished ? 'published' : 'draft'
if (!activeConfigIsPublished || isDirty)
if (!activeConfigIsPublished)
return 'unpublished'
return 'published'

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(اختياري)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandboxed · يعمل مرة واحدة عند أول استدعاء",
"agentDetail.configure.tools.cliDialog.installCommand.label": "أمر التثبيت",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "الصق أمر التثبيت هنا، مثل npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "الصق أمر التثبيت هنا، مثل npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "أمر التثبيت مطلوب.",
"agentDetail.configure.tools.cliDialog.learnMore": "اعرف المزيد عن أداة CLI",
"agentDetail.configure.tools.cliDialog.name.label": "اسم أداة CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(optional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "In der Sandbox · läuft einmal beim ersten Aufruf",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Installationsbefehl",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Fügen Sie hier Ihren Installationsbefehl ein, z. B. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Fügen Sie hier Ihren Installationsbefehl ein, z. B. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Installationsbefehl ist erforderlich.",
"agentDetail.configure.tools.cliDialog.learnMore": "Mehr über CLI-Tool erfahren",
"agentDetail.configure.tools.cliDialog.name.label": "Name des CLI-Tools",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(optional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandboxed · runs once on first invocation",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Install Command",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Paste your install command here, e.g. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Paste your install command here, e.g. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Install command is required.",
"agentDetail.configure.tools.cliDialog.learnMore": "Learn more about CLI Tool",
"agentDetail.configure.tools.cliDialog.name.label": "CLI Tool Name",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(opcional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "En sandbox · se ejecuta una vez en la primera invocación",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Comando de instalación",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Pega tu comando de instalación aquí, p. ej. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Pega tu comando de instalación aquí, p. ej. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "El comando de instalación es obligatorio.",
"agentDetail.configure.tools.cliDialog.learnMore": "Más información sobre la herramienta CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nombre de la herramienta CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(اختیاری)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandboxed · در اولین فراخوانی یک بار اجرا می‌شود",
"agentDetail.configure.tools.cliDialog.installCommand.label": "فرمان نصب",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "فرمان نصب خود را اینجا بچسبانید، مثلاً npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "فرمان نصب خود را اینجا بچسبانید، مثلاً npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "فرمان نصب الزامی است.",
"agentDetail.configure.tools.cliDialog.learnMore": "اطلاعات بیشتر درباره ابزار CLI",
"agentDetail.configure.tools.cliDialog.name.label": "نام ابزار CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(facultatif)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandboxé · sexécute une fois lors du premier appel",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Commande dinstallation",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Collez votre commande dinstallation ici, p. ex. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Collez votre commande dinstallation ici, p. ex. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "La commande dinstallation est requise.",
"agentDetail.configure.tools.cliDialog.learnMore": "En savoir plus sur loutil CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nom de loutil CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(वैकल्पिक)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "सैंडबॉक्स में · पहली कॉल पर एक बार चलता है",
"agentDetail.configure.tools.cliDialog.installCommand.label": "स्थापना कमांड",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "अपनी स्थापना कमांड यहाँ चिपकाएँ, उदा. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "अपनी स्थापना कमांड यहाँ चिपकाएँ, उदा. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "स्थापना कमांड आवश्यक है।",
"agentDetail.configure.tools.cliDialog.learnMore": "CLI उपकरण के बारे में और जानें",
"agentDetail.configure.tools.cliDialog.name.label": "CLI उपकरण का नाम",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(opsional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandbox · berjalan sekali pada pemanggilan pertama",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Perintah Instalasi",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Tempel perintah instalasi Anda di sini, misalnya npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Tempel perintah instalasi Anda di sini, misalnya npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Perintah instalasi diperlukan.",
"agentDetail.configure.tools.cliDialog.learnMore": "Pelajari lebih lanjut tentang Alat CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nama Alat CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(facoltativo)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "In sandbox · eseguito una sola volta alla prima invocazione",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Comando di installazione",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Incolla qui il tuo comando di installazione, ad esempio npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Incolla qui il tuo comando di installazione, ad esempio npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Il comando di installazione è obbligatorio.",
"agentDetail.configure.tools.cliDialog.learnMore": "Scopri di più sullo strumento CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nome dello strumento CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(任意)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "サンドボックス内で実行 · 初回呼び出し時に一度だけ実行",
"agentDetail.configure.tools.cliDialog.installCommand.label": "インストールコマンド",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "インストールコマンドをここに貼り付け、例: npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "インストールコマンドをここに貼り付け、例: npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "インストールコマンドを入力してください。",
"agentDetail.configure.tools.cliDialog.learnMore": "CLI ツールについて詳しく見る",
"agentDetail.configure.tools.cliDialog.name.label": "CLI ツール名",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(선택 사항)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "샌드박스 실행 · 최초 호출 시 한 번 실행",
"agentDetail.configure.tools.cliDialog.installCommand.label": "설치 명령",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "설치 명령을 여기에 붙여넣으세요. 예: npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "설치 명령을 여기에 붙여넣으세요. 예: npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "설치 명령을 입력하세요.",
"agentDetail.configure.tools.cliDialog.learnMore": "CLI 도구에 대해 자세히 알아보기",
"agentDetail.configure.tools.cliDialog.name.label": "CLI 도구 이름",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(optioneel)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandboxed · wordt eenmaal uitgevoerd bij de eerste aanroep",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Installatiecommando",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Plak hier je installatiecommando, bv. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Plak hier je installatiecommando, bv. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Installatiecommando is verplicht.",
"agentDetail.configure.tools.cliDialog.learnMore": "Meer over CLI-tool",
"agentDetail.configure.tools.cliDialog.name.label": "Naam van CLI-tool",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(opcjonalnie)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "W sandboxie · uruchamia się raz przy pierwszym wywołaniu",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Polecenie instalacji",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Wklej tutaj polecenie instalacji, np. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Wklej tutaj polecenie instalacji, np. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Polecenie instalacji jest wymagane.",
"agentDetail.configure.tools.cliDialog.learnMore": "Dowiedz się więcej o narzędziu CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nazwa narzędzia CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(opcional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Em sandbox · executado uma vez na primeira invocação",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Comando de instalação",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Cole seu comando de instalação aqui, ex.: npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Cole seu comando de instalação aqui, ex.: npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Comando de instalação é obrigatório.",
"agentDetail.configure.tools.cliDialog.learnMore": "Saiba mais sobre ferramenta CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Nome da ferramenta CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(opțional)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "În sandbox · rulat o singură dată la prima invocare",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Comandă de instalare",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Lipiți comanda de instalare aici, de ex. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Lipiți comanda de instalare aici, de ex. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Comanda de instalare este obligatorie.",
"agentDetail.configure.tools.cliDialog.learnMore": "Aflați mai multe despre instrumentul CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Numele instrumentului CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(необязательно)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "В песочнице · запускается один раз при первом вызове",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Команда установки",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Вставьте команду установки здесь, например npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Вставьте команду установки здесь, например npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Команда установки обязательна.",
"agentDetail.configure.tools.cliDialog.learnMore": "Подробнее о CLI-инструменте",
"agentDetail.configure.tools.cliDialog.name.label": "Имя CLI-инструмента",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(neobvezno)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "V sandboxu · zažene se enkrat ob prvi uporabi",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Namestitveni ukaz",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Sem prilepite namestitveni ukaz, npr. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Sem prilepite namestitveni ukaz, npr. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Namestitveni ukaz je obvezen.",
"agentDetail.configure.tools.cliDialog.learnMore": "Več o orodju CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Ime orodja CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(ตัวเลือก)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "รันในแซนด์บ็อกซ์ · รันหนึ่งครั้งเมื่อเรียกใช้ครั้งแรก",
"agentDetail.configure.tools.cliDialog.installCommand.label": "คำสั่งติดตั้ง",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "วางคำสั่งติดตั้งของคุณที่นี่ เช่น npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "วางคำสั่งติดตั้งของคุณที่นี่ เช่น npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "ต้องระบุคำสั่งติดตั้ง",
"agentDetail.configure.tools.cliDialog.learnMore": "เรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือ CLI",
"agentDetail.configure.tools.cliDialog.name.label": "ชื่อเครื่องมือ CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(isteğe bağlı)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandbox · ilk çağrıda bir kez çalışır",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Kurulum Komutu",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Kurulum komutunuzu buraya yapıştırın, örneğin npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Kurulum komutunuzu buraya yapıştırın, örneğin npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Kurulum komutu gerekli.",
"agentDetail.configure.tools.cliDialog.learnMore": "CLI Aracı hakkında daha fazla bilgi",
"agentDetail.configure.tools.cliDialog.name.label": "CLI Aracı Adı",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(необов'язково)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "У пісочниці · виконується один раз при першому виклику",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Команда встановлення",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Вставте сюди команду встановлення, напр. npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Вставте сюди команду встановлення, напр. npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Команда встановлення обов'язкова.",
"agentDetail.configure.tools.cliDialog.learnMore": "Докладніше про CLI-інструмент",
"agentDetail.configure.tools.cliDialog.name.label": "Назва CLI-інструмента",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(tùy chọn)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "Sandbox · chạy một lần khi gọi lần đầu",
"agentDetail.configure.tools.cliDialog.installCommand.label": "Lệnh cài đặt",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Dán lệnh cài đặt của bạn vào đây, ví dụ npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "Dán lệnh cài đặt của bạn vào đây, ví dụ npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "Cần lệnh cài đặt.",
"agentDetail.configure.tools.cliDialog.learnMore": "Tìm hiểu thêm về công cụ CLI",
"agentDetail.configure.tools.cliDialog.name.label": "Tên công cụ CLI",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(可选)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "沙箱中执行 · 首次调用时运行一次",
"agentDetail.configure.tools.cliDialog.installCommand.label": "安装命令",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "粘贴安装命令,例如 npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "粘贴安装命令,例如 npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "请输入安装命令。",
"agentDetail.configure.tools.cliDialog.learnMore": "了解 CLI 工具",
"agentDetail.configure.tools.cliDialog.name.label": "CLI 工具名称",

View File

@ -201,7 +201,7 @@
"agentDetail.configure.tools.cliDialog.env.optional": "(選用)",
"agentDetail.configure.tools.cliDialog.installCommand.description": "沙箱中執行 · 首次呼叫時執行一次",
"agentDetail.configure.tools.cliDialog.installCommand.label": "安裝命令",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "貼上安裝命令,例如 npm install -g @lark/cli · brew install jq",
"agentDetail.configure.tools.cliDialog.installCommand.placeholder": "貼上安裝命令,例如 npx -y @playwright/mcp@latest · uv tool install httpie",
"agentDetail.configure.tools.cliDialog.installCommand.required": "請輸入安裝命令。",
"agentDetail.configure.tools.cliDialog.learnMore": "了解 CLI 工具",
"agentDetail.configure.tools.cliDialog.name.label": "CLI 工具名稱",