feat(agent): unified per-device working directory + execution-device UI (#15543)

*  feat(agent): unified per-device working directory + execution-device UI

Client UI consuming the backend contract (#15542). User-facing — validate
before merge.

- New `src/store/device` (SWR fetch + cwd writes) — single source of device data;
  `deviceCwd` helper moves here from the chat-input feature layer.
- One `WorkingDirectoryPicker` for local + remote (native dialog vs manual path).
- Shared `WorkspaceControls` strip composed by both chat-input bars.
- GitStatus reads remote git via `useDeviceGitInfo` (read-only).
- Execution-device switcher graduates out of labs → writes only executionTarget.
- One-time migration of legacy localStorage recents into device.workingDirs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat(agent): wire executionTarget→runtimeMode + workingDirByDevice cwd

The runtime-decision wiring, kept out of the backend contract PR so it's
reviewed/validated together with the UI that drives it.

- `helpers/executionTarget`: resolveRuntimeMode / executionTarget resolvers.
- server tool gate (AgentToolsEngine) derives runtimeMode from
  `agencyConfig.executionTarget`, with a no-regression fallback to the legacy
  per-platform runtimeMode.
- server cwd precedence (aiAgent resolveWorkspaceInit + hetero dispatch) now
  consumes `workingDirByDevice[targetDeviceId]`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  test(agent): cover executionTarget + workingDir helpers; drop dead lab key

- Unit-test resolveRuntimeMode / resolveExecutionTarget and the working-dir
  precedence (locks the web default→cloud graduation + legacy fallback)
- Remove the now-unused `executionDeviceSwitcher` lab i18n keys (toggle deleted)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): guide web users to the desktop app in the device switcher

On web with no remote device, replace the muted "no devices" dead-end with a
prominent, clickable download-desktop card (and drop the now-duplicate header
link). Desktop keeps the muted hint since local execution is already available.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): fix execution-device copy for desktop + web

- Desktop "no devices" hint no longer tells an already-on-desktop user to
  "install the desktop app" — just points at `lh connect`.
- Tighten the web download-card description to the desktop's real benefit
  (run on your computer with local file access).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): flatten the web download card to a plain row

Drop the outer border/background so it reads as a normal menu row (like the
sandbox option), and shorten the description to a single line so the row stops
being taller than its neighbours.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): reword download-card desc to "access to your computer"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat(agent): add "no device" execution target (plain chat, no run tools)

Restores the option to run an agent with no execution environment, lost when
the per-platform runtimeMode was unified into executionTarget. Adds `none` to
HeteroExecutionTarget (→ runtimeMode `none`), surfaces it at the top of the
switcher on both web + desktop, and flips the web default back to `none` so an
unconfigured web agent is plain chat again (desktop still defaults to local).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): rename HeteroExecutionTarget→DeviceExecutionTarget, reorder switcher

- Rename the type (it now carries `none`, so "device" target fits better than
  "hetero") across types + helpers + dispatcher + switcher.
- Move "no device" to the bottom of the list (real targets first, opt-out last).
- Reword the download card to "let agents connect directly to your computer".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): move "no device" back to top, restore EN download copy

"No device" sits above the dynamic device rows; keep the EN download-card
wording as "Run agents with access to your computer".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): swap switcher icons — MonitorOff for "no device", Box for sandbox

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): clarify execution-device info tooltip + "no device" desc

- Info tooltip now explains the cloud sandbox is provided by the centralized
  LobeHub Marketplace, and that picking a device makes it the agent's runtime
  for reading/writing files and operating the computer.
- "No device" description now conveys "no device enabled, can't operate a
  computer" instead of "plain chat".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): move info icon beside the title, shorten "no device" desc

- Info tooltip trigger now sits next to the "Execution Device" title instead of
  right-aligned; the download link stays on the right.
- "No device" description trimmed to just "No device enabled".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): zh tooltip wording — "提供服务"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): reorder tooltip — device runtime first, marketplace last

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): trim tooltip — drop "设备"/devices and trailing period

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): tag the current machine's device row, drop duplicate "This device"

When the desktop's own machine appears in the device list, badge that real row
with a "This device" tag and hide the generic "This device" (local) option —
no more two entries for the same machine. The local option still shows as a
fallback when the machine isn't enrolled in the list yet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 feat(agent): hoist this-machine device above sandbox + auto-bind on first run

Switcher-only (no routing/dispatch changes):
- Order is now: no device → this device → cloud sandbox → other devices.
- On desktop, when this machine is enrolled and online and the agent has no
  explicit target yet, default to it and persist the binding once.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): widen gap between execution-device rows

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): hide "Get Desktop App" link on desktop

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): capitalize "Cloud Sandbox" label

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 feat(agent): web working-dir entry via "Add folder" modal instead of inline input

The browser folder picker can't yield an absolute path (sandboxed handle), so
on web / a remote device the working directory is entered manually. Replace the
inline input with an "Add folder…" row that opens a modal for absolute-path
entry; the local desktop machine still opens the native folder dialog.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(agent): split working-dir footer into local/remote row components

Replace the scattered `isLocalDevice ?` forks (icon, label, handler) with one
branch that picks between two self-contained rows: ChooseLocalFolderRow (native
dialog) and AddRemoteFolderRow (absolute-path modal).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): use the device default cwd as the add-folder placeholder

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat(agent): validate manually-entered working dir via device statPath RPC

Web / remote clients can't browse the target device's filesystem, so the
"Add folder" modal now checks the typed path on the device before binding it.
New `statPath` device RPC mirrors gitInfo end-to-end:
- desktop WorkspaceCtr.statPath (fs.stat → exists / isDirectory) + RPC dispatch
- server deviceGateway.statPath + device.statPath tRPC (invokeRpc relay)
- modal blocks on a definitive negative (not found / not a directory); an
  unreachable device is treated as "can't verify" and allowed through

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(agent): route statPath through deviceService, not lambdaClient

Components shouldn't import lambdaClient directly — add a thin deviceService
wrapping device.statPath, and call it from the working-dir picker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(i18n): move working-directory strings from plugin to a device ns

The working-directory / git control-bar strings (53 keys) were lumped under the
`plugin` namespace. Move them to a dedicated `device` namespace and drop the
now-redundant `localSystem.` prefix (`plugin:localSystem.workingDirectory.X` →
`device:workingDirectory.X`). Updates the 4 consumer components; the `device`
ns auto-registers via defaultResources.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(agent): route all device TRPC calls through deviceService

Components/hooks/stores shouldn't reach into lambdaClient.device.* directly.
Expand deviceService with listDevices/updateDevice/listGitBranches/
checkoutGitBranch/checkCapability/getAgentProfile and migrate every imperative
call site (device store, BranchSwitcher, CreatePlatformAgent, the remote-agent
guard, RemoteAgentConfigCard) + the DeviceListItem type. lambdaQuery.device.*
React-Query hooks are left as-is (a different pattern).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat(agent): pull/push a remote device's branch over RPC

Wire git pull/push through the device's pullGitBranch/pushGitBranch RPC so the
web/remote GitStatus bar can sync, not just the local desktop over IPC. Shows
the pull/push affordances for remote devices too.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(agent): route git pull/push through deviceService too

Add pullGitBranch/pushGitBranch to deviceService and switch GitStatus off the
direct lambdaClient.device.* calls, so no component reaches the device router
directly anymore.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 🐛 fix(agent): detect repoType for manually-added working dirs

A directory added via the "Add folder" modal committed without a repoType, so a
GitHub repo showed a plain folder icon. statPath now also returns the git repo
type (detected on the target device); the modal threads it into the committed
entry. Collapses the modal's separate validate+submit into one onSubmit that
validates and enriches in a single round-trip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 style(agent): create new branch via a modal instead of inline footer

"Checkout new branch…" now opens a focused modal (branch-name input + create)
rather than expanding an inline footer inside the branch dropdown. Always
creates + checks out the branch — no checkout/overwrite options. Errors show
inline in the modal; drops the dead inline-create state/styles.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ♻️ refactor(agent): route all git ops through a unified gitService

Pick Electron IPC vs device RPC inside the service so UI / store / hooks
stay transport-agnostic. Replace the bundled `gitInfo` device RPC with
granular reads (branch / linked PR / working-tree / ahead-behind) that
mirror the local IPC methods one-to-one, and move the git read SWR hooks
into the device store (useFetchGitInfo / WorkingTreeStatus / AheadBehind).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat(agent): route Review git ops through device RPC (remote-capable)

Extend the device-RPC git pipeline to the 4 ops the Review panel needs
(getGitWorkingTreePatches / getGitBranchDiff / listGitRemoteBranches /
revertGitFile), mirroring the listGitBranches pattern end-to-end: desktop RPC
dispatch → deviceGateway → device.* tRPC → gitService. Adds minimal DeviceGit*
mirror types to @lobechat/types. Review (useReviewPatches / useGitRemoteBranches
/ FileItem) now goes through gitService with a deviceId, dropping the isDesktop
gate so web/remote devices get the diff + revert too.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 🐛 fix(agent): resolve repoType from device store so remote Review tab shows

useRepoType now reads the persisted workingDirs[].repoType from the device
store (keyed by deviceId), so a remote device's git/github type — and thus the
Review tab visibility — resolves without a local-only IPC probe. The IPC probe
+ localStorage fallback are kept only when the target is the local machine.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 💄 feat(agent): optimistic branch switch in the branch switcher

Flip the displayed branch the instant a checkout is clicked (or a new branch
created) instead of waiting for the IPC/RPC round-trip + gitInfo refetch. The
git-info SWR cache is optimistically updated and reconciled on completion — a
failed checkout rolls the label back and toasts the error.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

*  feat: support remote device files panel

* 💄 style: restore desktop this-device option

* 🐛 fix: keep files panel local for this device

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Arvin Xu
2026-06-08 23:27:52 +08:00
committed by GitHub
parent a75eba5a4f
commit ea3ae583d6
106 changed files with 3670 additions and 2198 deletions
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "التكرار الذاتي للوكيل",
"features.assistantMessageGroup.desc": "تجميع رسائل الوكيل ونتائج استدعاء الأدوات معًا للعرض",
"features.assistantMessageGroup.title": "تجميع رسائل الوكيل",
"features.executionDeviceSwitcher.desc": "إظهار مفتاح تبديل جهاز التنفيذ في شريط أدوات الوكيل المتنوع بحيث يمكنك توجيه العمليات إلى هذا الجهاز أو إلى سحابة تجريبية أو إلى جهاز بعيد مرتبط.",
"features.executionDeviceSwitcher.title": "مفتاح تبديل جهاز التنفيذ",
"features.gatewayMode.desc": "تنفيذ مهام الوكيل على الخادم عبر بوابة WebSocket بدلًا من التشغيل محليًا، مما يتيح تنفيذًا أسرع ويقلل من استهلاك موارد العميل.",
"features.gatewayMode.title": "تنفيذ الوكيل من جانب الخادم (البوابة)",
"features.groupChat.desc": "تمكين تنسيق الدردشة الجماعية متعددة الوكلاء.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Само-итерация на агента",
"features.assistantMessageGroup.desc": "Групиране на съобщенията от агента и резултатите от извикванията на инструменти заедно за показване",
"features.assistantMessageGroup.title": "Групиране на съобщения от агент",
"features.executionDeviceSwitcher.desc": "Показване на превключвателя за изпълнителни устройства в хетерогенната лента с инструменти на агента, за да можете да насочвате изпълненията към това устройство, облачен пясъчник или свързано отдалечено устройство.",
"features.executionDeviceSwitcher.title": "Превключвател за изпълнителни устройства",
"features.gatewayMode.desc": "Изпълнявайте задачите на агента на сървъра чрез Gateway WebSocket вместо локално. Осигурява по-бързо изпълнение и намалява използването на ресурси от клиента.",
"features.gatewayMode.title": "Изпълнение на агента от страна на сървъра (Gateway)",
"features.groupChat.desc": "Активиране на координация в групов чат с множество агенти.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Agenten-Selbstiteration",
"features.assistantMessageGroup.desc": "Agenten-Nachrichten und deren Tool-Ergebnisse gemeinsam anzeigen",
"features.assistantMessageGroup.title": "Agenten-Nachrichten gruppieren",
"features.executionDeviceSwitcher.desc": "Zeigen Sie den Ausführungsgeräte-Umschalter in der heterogenen Agenten-Toolbar an, damit Sie Läufe auf dieses Gerät, eine Cloud-Sandbox oder ein verbundenes Remote-Gerät leiten können.",
"features.executionDeviceSwitcher.title": "Ausführungsgeräte-Umschalter",
"features.gatewayMode.desc": "Führt Agentenaufgaben über die Gateway-WebSocket-Verbindung auf dem Server aus, statt sie lokal auszuführen. Ermöglicht eine schnellere Ausführung und verringert die Client-Ressourcennutzung.",
"features.gatewayMode.title": "Serverseitige Agentenausführung (Gateway)",
"features.groupChat.desc": "Koordination von Gruppenchats mit mehreren Agenten aktivieren.",
+7 -3
View File
@@ -209,14 +209,18 @@
"heteroAgent.cloudRepo.notSet": "No repo selected",
"heteroAgent.cloudRepo.sectionTitle": "Repositories",
"heteroAgent.executionTarget.downloadDesktop": "Get Desktop App",
"heteroAgent.executionTarget.infoTooltip": "Pick a remote device to drive that machine from the web. \"This device\" runs the agent locally and is only available inside the desktop app.",
"heteroAgent.executionTarget.downloadDesktopDesc": "Run agents with access to your computer",
"heteroAgent.executionTarget.downloadDesktopTitle": "Get the desktop app",
"heteroAgent.executionTarget.infoTooltip": "Pick a device and the agent uses it as its runtime environment — reading and writing files and operating the computer. Cloud sandbox is provided by LobeHub Marketplace.",
"heteroAgent.executionTarget.loading": "Loading devices…",
"heteroAgent.executionTarget.local": "This device",
"heteroAgent.executionTarget.localDesc": "Run as a local process on this desktop app",
"heteroAgent.executionTarget.noDevices": "No remote devices yet. Install the desktop app or run `lh connect` on another machine.",
"heteroAgent.executionTarget.noDevices": "No remote devices yet. Run `lh connect` on another machine to add one.",
"heteroAgent.executionTarget.none": "No device",
"heteroAgent.executionTarget.noneDesc": "No device enabled",
"heteroAgent.executionTarget.offline": "Offline",
"heteroAgent.executionTarget.online": "Online",
"heteroAgent.executionTarget.sandbox": "Cloud sandbox",
"heteroAgent.executionTarget.sandbox": "Cloud Sandbox",
"heteroAgent.executionTarget.sandboxDesc": "Run in an ephemeral cloud sandbox",
"heteroAgent.executionTarget.title": "Execution Device",
"heteroAgent.executionTarget.unknownDevice": "Unknown device",
+56
View File
@@ -0,0 +1,56 @@
{
"workingDirectory.addFolder": "Add folder…",
"workingDirectory.addFolderDesc": "Enter an absolute path on the target device, e.g. /Users/name/projects",
"workingDirectory.addFolderTitle": "Add working directory",
"workingDirectory.agentDescription": "Default working directory for all conversations with this Agent",
"workingDirectory.agentLevel": "Agent Working Directory",
"workingDirectory.branchSearchPlaceholder": "Search branches",
"workingDirectory.branchesEmpty": "No local branches",
"workingDirectory.branchesHeading": "Branches",
"workingDirectory.branchesLoading": "Loading branches…",
"workingDirectory.branchesNoMatch": "No matching branches",
"workingDirectory.cancel": "Cancel",
"workingDirectory.checkoutAction": "Checkout",
"workingDirectory.checkoutFailed": "Checkout failed",
"workingDirectory.chooseDifferentFolder": "Choose a folder...",
"workingDirectory.clear": "Clear",
"workingDirectory.createBranchAction": "Checkout new branch…",
"workingDirectory.createBranchTitle": "Create new branch",
"workingDirectory.current": "Current working directory",
"workingDirectory.detachedHead": "Detached HEAD at {{sha}}",
"workingDirectory.diffStatTooltip": "Added {{added}} · Modified {{modified}} · Deleted {{deleted}}",
"workingDirectory.filesAdded": "Added",
"workingDirectory.filesDeleted": "Deleted",
"workingDirectory.filesEmpty": "No uncommitted changes",
"workingDirectory.filesLoading": "Loading changes…",
"workingDirectory.filesModified": "Modified",
"workingDirectory.ghMissing": "Install and log in to the GitHub CLI (`gh`) to see linked pull requests",
"workingDirectory.newBranchPlaceholder": "feature/new-branch-name",
"workingDirectory.noRecent": "No recent directories",
"workingDirectory.notSet": "Click to set working directory",
"workingDirectory.pathNotDirectory": "This path is not a directory",
"workingDirectory.pathNotExist": "This path doesn't exist on the device",
"workingDirectory.placeholder": "Enter directory path, e.g. /Users/name/projects",
"workingDirectory.prTooltipWithExtra": "{{title}} (+{{count}} more open PR on this branch)",
"workingDirectory.pullAction": "Click to pull {{count}} commit(s) from {{upstream}}",
"workingDirectory.pullFailed": "Pull failed",
"workingDirectory.pullInProgress": "Pulling…",
"workingDirectory.pullNoop": "Already up to date",
"workingDirectory.pullSuccess": "Pulled successfully",
"workingDirectory.pushAction": "Click to push {{count}} commit(s) to {{target}}",
"workingDirectory.pushActionNew": "Click to create branch {{target}}",
"workingDirectory.pushFailed": "Push failed",
"workingDirectory.pushInProgress": "Pushing…",
"workingDirectory.pushNoop": "Everything up-to-date",
"workingDirectory.pushSuccess": "Pushed successfully",
"workingDirectory.recent": "Recent",
"workingDirectory.refreshGitStatus": "Refresh branch & PR status",
"workingDirectory.removeRecent": "Remove from recent",
"workingDirectory.selectFolder": "Select folder",
"workingDirectory.title": "Working Directory",
"workingDirectory.topicDescription": "Override Agent default for this conversation only",
"workingDirectory.topicLevel": "Conversation override",
"workingDirectory.topicOverride": "Override for this conversation",
"workingDirectory.uncommittedChanges_one": "Uncommitted changes: {{count}} file",
"workingDirectory.uncommittedChanges_other": "Uncommitted changes: {{count}} files"
}
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Agent Self-iteration",
"features.assistantMessageGroup.desc": "Group agent messages and their tool call results together for display",
"features.assistantMessageGroup.title": "Agent Message Grouping",
"features.executionDeviceSwitcher.desc": "Surface the execution-device switcher in the heterogeneous agent toolbar so you can route runs to this device, a cloud sandbox, or a bound remote device.",
"features.executionDeviceSwitcher.title": "Execution Device Switcher",
"features.gatewayMode.desc": "Execute agent tasks on the server via Gateway WebSocket instead of running locally. Enables faster execution and reduces client resource usage.",
"features.gatewayMode.title": "Server-Side Agent Execution (Gateway)",
"features.groupChat.desc": "Enable multi-agent group chat coordination.",
-48
View File
@@ -552,54 +552,6 @@
"list.item.local.title": "Custom",
"loading.content": "Calling Skill…",
"loading.plugin": "Skill running…",
"localSystem.workingDirectory.agentDescription": "Default working directory for all conversations with this Agent",
"localSystem.workingDirectory.agentLevel": "Agent Working Directory",
"localSystem.workingDirectory.branchSearchPlaceholder": "Search branches",
"localSystem.workingDirectory.branchesEmpty": "No local branches",
"localSystem.workingDirectory.branchesHeading": "Branches",
"localSystem.workingDirectory.branchesLoading": "Loading branches…",
"localSystem.workingDirectory.branchesNoMatch": "No matching branches",
"localSystem.workingDirectory.cancel": "Cancel",
"localSystem.workingDirectory.checkoutAction": "Checkout",
"localSystem.workingDirectory.checkoutFailed": "Checkout failed",
"localSystem.workingDirectory.chooseDifferentFolder": "Choose a folder...",
"localSystem.workingDirectory.clear": "Clear",
"localSystem.workingDirectory.createBranchAction": "Checkout new branch…",
"localSystem.workingDirectory.current": "Current working directory",
"localSystem.workingDirectory.detachedHead": "Detached HEAD at {{sha}}",
"localSystem.workingDirectory.diffStatTooltip": "Added {{added}} · Modified {{modified}} · Deleted {{deleted}}",
"localSystem.workingDirectory.filesAdded": "Added",
"localSystem.workingDirectory.filesDeleted": "Deleted",
"localSystem.workingDirectory.filesEmpty": "No uncommitted changes",
"localSystem.workingDirectory.filesLoading": "Loading changes…",
"localSystem.workingDirectory.filesModified": "Modified",
"localSystem.workingDirectory.ghMissing": "Install and log in to the GitHub CLI (`gh`) to see linked pull requests",
"localSystem.workingDirectory.newBranchPlaceholder": "feature/new-branch-name",
"localSystem.workingDirectory.noRecent": "No recent directories",
"localSystem.workingDirectory.notSet": "Click to set working directory",
"localSystem.workingDirectory.placeholder": "Enter directory path, e.g. /Users/name/projects",
"localSystem.workingDirectory.prTooltipWithExtra": "{{title}} (+{{count}} more open PR on this branch)",
"localSystem.workingDirectory.pullAction": "Click to pull {{count}} commit(s) from {{upstream}}",
"localSystem.workingDirectory.pullFailed": "Pull failed",
"localSystem.workingDirectory.pullInProgress": "Pulling…",
"localSystem.workingDirectory.pullNoop": "Already up to date",
"localSystem.workingDirectory.pullSuccess": "Pulled successfully",
"localSystem.workingDirectory.pushAction": "Click to push {{count}} commit(s) to {{target}}",
"localSystem.workingDirectory.pushActionNew": "Click to create branch {{target}}",
"localSystem.workingDirectory.pushFailed": "Push failed",
"localSystem.workingDirectory.pushInProgress": "Pushing…",
"localSystem.workingDirectory.pushNoop": "Everything up-to-date",
"localSystem.workingDirectory.pushSuccess": "Pushed successfully",
"localSystem.workingDirectory.recent": "Recent",
"localSystem.workingDirectory.refreshGitStatus": "Refresh branch & PR status",
"localSystem.workingDirectory.removeRecent": "Remove from recent",
"localSystem.workingDirectory.selectFolder": "Select folder",
"localSystem.workingDirectory.title": "Working Directory",
"localSystem.workingDirectory.topicDescription": "Override Agent default for this conversation only",
"localSystem.workingDirectory.topicLevel": "Conversation override",
"localSystem.workingDirectory.topicOverride": "Override for this conversation",
"localSystem.workingDirectory.uncommittedChanges_one": "Uncommitted changes: {{count}} file",
"localSystem.workingDirectory.uncommittedChanges_other": "Uncommitted changes: {{count}} files",
"mcpEmpty.deployment": "No deployment options",
"mcpEmpty.prompts": "No prompts",
"mcpEmpty.resources": "No resources",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Autoiteración del agente",
"features.assistantMessageGroup.desc": "Agrupa los mensajes del agente y los resultados de sus herramientas para mostrarlos juntos",
"features.assistantMessageGroup.title": "Agrupación de Mensajes del Agente",
"features.executionDeviceSwitcher.desc": "Mostrar el conmutador de dispositivo de ejecución en la barra de herramientas del agente heterogéneo para que puedas dirigir las ejecuciones a este dispositivo, un sandbox en la nube o un dispositivo remoto vinculado.",
"features.executionDeviceSwitcher.title": "Conmutador de Dispositivo de Ejecución",
"features.gatewayMode.desc": "Ejecuta las tareas del agente en el servidor a través del WebSocket de Gateway en lugar de hacerlo localmente. Permite una ejecución más rápida y reduce el uso de recursos del cliente.",
"features.gatewayMode.title": "Ejecución del agente del lado del servidor (Gateway)",
"features.groupChat.desc": "Activa la coordinación de chat grupal con múltiples agentes.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "خود‌تکراری عامل",
"features.assistantMessageGroup.desc": "نمایش گروهی پیام‌های عامل و نتایج ابزارهای فراخوانی‌شده به‌صورت یکجا",
"features.assistantMessageGroup.title": "گروه‌بندی پیام‌های عامل",
"features.executionDeviceSwitcher.desc": "نمایش تغییر‌دهنده دستگاه اجرا در نوار ابزار نماینده ناهمگن تا بتوانید اجراها را به این دستگاه، یک محیط ابری یا یک دستگاه راه دور متصل هدایت کنید.",
"features.executionDeviceSwitcher.title": "تغییر‌دهنده دستگاه اجرا",
"features.gatewayMode.desc": "اجرای وظایف ایجنت روی سرور از طریق وب‌سوکت Gateway به‌جای اجرای محلی. این کار سرعت اجرا را افزایش داده و مصرف منابع در دستگاه کاربر را کاهش می‌دهد.",
"features.gatewayMode.title": "اجرای ایجنت در سمت سرور (Gateway)",
"features.groupChat.desc": "فعال‌سازی هماهنگی گفت‌وگوی گروهی چندعاملی.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Autoitération de lagent",
"features.assistantMessageGroup.desc": "Regroupez les messages de l'agent et les résultats de leurs appels d'outils pour les afficher ensemble",
"features.assistantMessageGroup.title": "Regroupement des messages de l'agent",
"features.executionDeviceSwitcher.desc": "Afficher le commutateur de périphérique d'exécution dans la barre d'outils hétérogène de l'agent afin de pouvoir rediriger les exécutions vers cet appareil, un bac à sable cloud ou un appareil distant lié.",
"features.executionDeviceSwitcher.title": "Commutateur de Périphérique d'Exécution",
"features.gatewayMode.desc": "Exécute les tâches de lagent sur le serveur via un WebSocket Gateway au lieu de les exécuter localement. Permet une exécution plus rapide et réduit lutilisation des ressources du client.",
"features.gatewayMode.title": "Exécution de lagent côté serveur (Gateway)",
"features.groupChat.desc": "Activez la coordination de discussions de groupe multi-agents.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Auto-iterazione dell'agente",
"features.assistantMessageGroup.desc": "Raggruppa i messaggi dell'agente e i risultati delle chiamate agli strumenti per una visualizzazione unificata",
"features.assistantMessageGroup.title": "Raggruppamento Messaggi Agente",
"features.executionDeviceSwitcher.desc": "Visualizza il selettore del dispositivo di esecuzione nella barra degli strumenti eterogenea dell'agente, così puoi instradare le esecuzioni su questo dispositivo, un sandbox cloud o un dispositivo remoto associato.",
"features.executionDeviceSwitcher.title": "Selettore del Dispositivo di Esecuzione",
"features.gatewayMode.desc": "Esegui le attività dellagente sul server tramite Gateway WebSocket invece di eseguirle in locale. Consente unesecuzione più rapida e riduce lutilizzo delle risorse del client.",
"features.gatewayMode.title": "Esecuzione dellAgente Lato Server (Gateway)",
"features.groupChat.desc": "Abilita il coordinamento della chat di gruppo con più agenti.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "エージェントの自己反復",
"features.assistantMessageGroup.desc": "アシスタントのメッセージとそのツール呼び出し結果をグループ化して表示します",
"features.assistantMessageGroup.title": "アシスタントメッセージのグループ化表示",
"features.executionDeviceSwitcher.desc": "異種エージェントツールバーに実行デバイススイッチャーを表示し、このデバイス、クラウドサンドボックス、またはバインドされたリモートデバイスに実行をルーティングできます。",
"features.executionDeviceSwitcher.title": "実行デバイススイッチャー",
"features.gatewayMode.desc": "エージェントのタスクをローカルではなく Gateway WebSocket を介してサーバー上で実行します。これにより、より高速な処理が可能になり、クライアント側のリソース消費を削減できます。",
"features.gatewayMode.title": "サーバーサイドエージェント実行(Gateway)",
"features.groupChat.desc": "複数のAIアシスタントによるグループチャット機能を有効にします。",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "에이전트 자기 반복",
"features.assistantMessageGroup.desc": "도우미 메시지와 해당 도구 호출 결과를 그룹으로 묶어 표시합니다",
"features.assistantMessageGroup.title": "도우미 메시지 그룹화",
"features.executionDeviceSwitcher.desc": "이종 에이전트 툴바에서 실행 장치 전환기를 표시하여 실행을 이 장치, 클라우드 샌드박스 또는 연결된 원격 장치로 라우팅할 수 있습니다.",
"features.executionDeviceSwitcher.title": "실행 장치 전환기",
"features.gatewayMode.desc": "로컬에서 실행하는 대신 Gateway WebSocket을 통해 서버에서 에이전트 작업을 실행합니다. 더 빠른 처리 속도를 제공하고 클라이언트 리소스 사용을 줄여줍니다.",
"features.gatewayMode.title": "서버 사이드 에이전트 실행(Gateway)",
"features.groupChat.desc": "다중 도우미 그룹 채팅 조정 기능을 활성화합니다.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Agent-zelfiteratie",
"features.assistantMessageGroup.desc": "Groepeer berichten van de agent en de resultaten van hun tool-aanroepen samen voor weergave",
"features.assistantMessageGroup.title": "Agentberichtengroepering",
"features.executionDeviceSwitcher.desc": "Toon de uitvoerapparaat-schakelaar in de heterogene agentwerkbalk, zodat je runs kunt routeren naar dit apparaat, een cloud-sandbox of een gekoppeld extern apparaat.",
"features.executionDeviceSwitcher.title": "Uitvoerapparaat-schakelaar",
"features.gatewayMode.desc": "Voer agenttaken op de server uit via de GatewayWebSocket in plaats van ze lokaal uit te voeren. Zorgt voor snellere uitvoering en vermindert het gebruik van clientbronnen.",
"features.gatewayMode.title": "Server-side uitvoering van agenten (Gateway)",
"features.groupChat.desc": "Schakel coördinatie van groepschats met meerdere agenten in.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Samoiteracja agenta",
"features.assistantMessageGroup.desc": "Grupuj wiadomości agenta i wyniki wywołań narzędzi razem do wyświetlenia",
"features.assistantMessageGroup.title": "Grupowanie Wiadomości Agenta",
"features.executionDeviceSwitcher.desc": "Wyświetl przełącznik urządzeń wykonawczych na pasku narzędzi agenta heterogenicznego, aby móc kierować uruchomienia na to urządzenie, chmurę sandbox lub powiązane urządzenie zdalne.",
"features.executionDeviceSwitcher.title": "Przełącznik Urządzeń Wykonawczych",
"features.gatewayMode.desc": "Wykonuj zadania agenta na serwerze przez Gateway WebSocket zamiast lokalnie. Umożliwia to szybsze wykonywanie i zmniejsza wykorzystanie zasobów po stronie klienta.",
"features.gatewayMode.title": "Wykonywanie agenta po stronie serwera (Gateway)",
"features.groupChat.desc": "Włącz koordynację czatu grupowego z wieloma agentami.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Autoiteração do Agente",
"features.assistantMessageGroup.desc": "Agrupe mensagens do agente e os resultados das chamadas de ferramentas para exibição conjunta",
"features.assistantMessageGroup.title": "Agrupamento de Mensagens do Agente",
"features.executionDeviceSwitcher.desc": "Exibir o alternador de dispositivo de execução na barra de ferramentas de agentes heterogêneos para que você possa direcionar execuções para este dispositivo, um sandbox na nuvem ou um dispositivo remoto vinculado.",
"features.executionDeviceSwitcher.title": "Alternador de Dispositivo de Execução",
"features.gatewayMode.desc": "Execute tarefas de agente no servidor via Gateway WebSocket em vez de executá-las localmente. Permite uma execução mais rápida e reduz o uso de recursos do cliente.",
"features.gatewayMode.title": "Execução de Agente no Servidor (Gateway)",
"features.groupChat.desc": "Ative a coordenação de bate-papo em grupo com múltiplos agentes.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Самоитерация агента",
"features.assistantMessageGroup.desc": "Группируйте сообщения агента и результаты вызова инструментов для совместного отображения",
"features.assistantMessageGroup.title": "Группировка сообщений агента",
"features.executionDeviceSwitcher.desc": "Отображать переключатель устройства выполнения в панели инструментов гетерогенного агента, чтобы вы могли направлять выполнение на это устройство, облачную песочницу или подключенное удаленное устройство.",
"features.executionDeviceSwitcher.title": "Переключатель устройства выполнения",
"features.gatewayMode.desc": "Выполняйте задачи агента на сервере через WebSocket Gateway вместо локального запуска. Обеспечивает более быструю работу и снижает нагрузку на ресурсы клиента.",
"features.gatewayMode.title": "Серверное выполнение агента (Gateway)",
"features.groupChat.desc": "Включите координацию группового чата с несколькими агентами.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Aracının Kendi Kendine Yinelemesi",
"features.assistantMessageGroup.desc": "Temsilci mesajlarını ve bunlara ait araç çağrısı sonuçlarını birlikte gruplayarak görüntüleyin",
"features.assistantMessageGroup.title": "Temsilci Mesaj Gruplama",
"features.executionDeviceSwitcher.desc": "Heterojen ajan araç çubuğunda yürütme cihazı değiştiricisini göstererek çalıştırmaları bu cihaza, bir bulut sanal alanına veya bağlı bir uzak cihaza yönlendirebilirsiniz.",
"features.executionDeviceSwitcher.title": "Yürütme Cihazı Değiştirici",
"features.gatewayMode.desc": "Aracı görevlerini yerel olarak çalıştırmak yerine Gateway WebSocket üzerinden sunucuda yürütün. Daha hızlı yürütme sağlar ve istemci kaynak kullanımını azaltır.",
"features.gatewayMode.title": "Sunucu Taraflı Aracı Yürütme (Gateway)",
"features.groupChat.desc": "Çoklu temsilci grup sohbeti koordinasyonunu etkinleştirin.",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Tự lặp của tác nhân",
"features.assistantMessageGroup.desc": "Nhóm các tin nhắn của tác nhân và kết quả gọi công cụ lại với nhau để hiển thị",
"features.assistantMessageGroup.title": "Nhóm Tin Nhắn Tác Nhân",
"features.executionDeviceSwitcher.desc": "Hiển thị công cụ chuyển đổi thiết bị thực thi trong thanh công cụ đại lý không đồng nhất để bạn có thể định tuyến các lần chạy đến thiết bị này, một sandbox đám mây hoặc một thiết bị từ xa được liên kết.",
"features.executionDeviceSwitcher.title": "Công Cụ Chuyển Đổi Thiết Bị Thực Thi",
"features.gatewayMode.desc": "Thực thi các tác vụ của tác nhân trên máy chủ thông qua Gateway WebSocket thay vì chạy cục bộ. Giúp tăng tốc độ xử lý và giảm mức sử dụng tài nguyên trên thiết bị của người dùng.",
"features.gatewayMode.title": "Thực thi tác nhân phía máy chủ (Gateway)",
"features.groupChat.desc": "Kích hoạt phối hợp trò chuyện nhóm với nhiều tác nhân.",
+6 -2
View File
@@ -209,11 +209,15 @@
"heteroAgent.cloudRepo.notSet": "未选择仓库",
"heteroAgent.cloudRepo.sectionTitle": "代码仓库",
"heteroAgent.executionTarget.downloadDesktop": "下载桌面端",
"heteroAgent.executionTarget.infoTooltip": "选择「远程设备」后可在网页中驱动该机器;「本机」仅在桌面端内运行 agent。",
"heteroAgent.executionTarget.downloadDesktopDesc": "让 Agent 直接连接你的电脑",
"heteroAgent.executionTarget.downloadDesktopTitle": "下载桌面端",
"heteroAgent.executionTarget.infoTooltip": "选择某台设备后,Agent 将以该设备为运行环境,读写文件、操作电脑。云端沙箱由 LobeHub Marketplace 提供服务",
"heteroAgent.executionTarget.loading": "正在加载设备…",
"heteroAgent.executionTarget.local": "本机",
"heteroAgent.executionTarget.localDesc": "在当前桌面端以本地进程运行",
"heteroAgent.executionTarget.noDevices": "暂无远程设备。在另一台机器上安装桌面端或执行 `lh connect` 接入。",
"heteroAgent.executionTarget.noDevices": "暂无远程设备。在另一台机器上执行 `lh connect` 即可接入。",
"heteroAgent.executionTarget.none": "无设备",
"heteroAgent.executionTarget.noneDesc": "不启用任何设备",
"heteroAgent.executionTarget.offline": "离线",
"heteroAgent.executionTarget.online": "在线",
"heteroAgent.executionTarget.sandbox": "云端沙箱",
+56
View File
@@ -0,0 +1,56 @@
{
"workingDirectory.addFolder": "添加目录…",
"workingDirectory.addFolderDesc": "输入目标设备上的绝对路径,如 /Users/name/projects",
"workingDirectory.addFolderTitle": "添加工作目录",
"workingDirectory.agentDescription": "该助手下所有对话的默认工作目录",
"workingDirectory.agentLevel": "代理工作目录",
"workingDirectory.branchSearchPlaceholder": "搜索分支",
"workingDirectory.branchesEmpty": "暂无本地分支",
"workingDirectory.branchesHeading": "分支",
"workingDirectory.branchesLoading": "加载分支中…",
"workingDirectory.branchesNoMatch": "没有匹配的分支",
"workingDirectory.cancel": "取消",
"workingDirectory.checkoutAction": "切换分支",
"workingDirectory.checkoutFailed": "切换分支失败",
"workingDirectory.chooseDifferentFolder": "选择其他文件夹",
"workingDirectory.clear": "清除目录",
"workingDirectory.createBranchAction": "检出新分支…",
"workingDirectory.createBranchTitle": "创建新分支",
"workingDirectory.current": "当前工作目录",
"workingDirectory.detachedHead": "游离 HEAD,当前提交 {{sha}}",
"workingDirectory.diffStatTooltip": "新增 {{added}} · 修改 {{modified}} · 删除 {{deleted}}",
"workingDirectory.filesAdded": "新增",
"workingDirectory.filesDeleted": "删除",
"workingDirectory.filesEmpty": "没有未提交的变更",
"workingDirectory.filesLoading": "加载中…",
"workingDirectory.filesModified": "修改",
"workingDirectory.ghMissing": "安装并登录 GitHub CLIgh)即可显示关联的 Pull Request",
"workingDirectory.newBranchPlaceholder": "feature/新分支名称",
"workingDirectory.noRecent": "暂无最近目录",
"workingDirectory.notSet": "点击设置工作目录",
"workingDirectory.pathNotDirectory": "该路径不是一个目录",
"workingDirectory.pathNotExist": "该设备上不存在此路径",
"workingDirectory.placeholder": "输入目录路径,如 /Users/name/projects",
"workingDirectory.prTooltipWithExtra": "{{title}}(此分支还有 {{count}} 个开放 PR",
"workingDirectory.pullAction": "点击从 {{upstream}} 拉取 {{count}} 个提交",
"workingDirectory.pullFailed": "拉取失败",
"workingDirectory.pullInProgress": "拉取中…",
"workingDirectory.pullNoop": "已是最新",
"workingDirectory.pullSuccess": "拉取成功",
"workingDirectory.pushAction": "点击推送 {{count}} 个提交到 {{target}}",
"workingDirectory.pushActionNew": "点击创建 {{target}} 分支",
"workingDirectory.pushFailed": "推送失败",
"workingDirectory.pushInProgress": "推送中…",
"workingDirectory.pushNoop": "已是最新",
"workingDirectory.pushSuccess": "推送成功",
"workingDirectory.recent": "最近使用",
"workingDirectory.refreshGitStatus": "刷新分支与 PR 状态",
"workingDirectory.removeRecent": "从最近目录中移除",
"workingDirectory.selectFolder": "选择文件夹",
"workingDirectory.title": "工作目录",
"workingDirectory.topicDescription": "仅覆盖当前对话的工作目录",
"workingDirectory.topicLevel": "对话覆盖",
"workingDirectory.topicOverride": "为当前对话覆盖设置",
"workingDirectory.uncommittedChanges_one": "未提交的更改:{{count}} 个文件",
"workingDirectory.uncommittedChanges_other": "未提交的更改:{{count}} 个文件"
}
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "Agent 自我迭代",
"features.assistantMessageGroup.desc": "将代理消息及其工具调用结果组合在一起显示",
"features.assistantMessageGroup.title": "代理消息分组",
"features.executionDeviceSwitcher.desc": "在异构 Agent 工具栏中展示「执行设备」切换器,可将运行任务路由到本机、云端沙箱或已绑定的远程设备。",
"features.executionDeviceSwitcher.title": "执行设备切换器",
"features.gatewayMode.desc": "通过 Gateway 在服务端执行 Agent 任务。可实现关闭浏览器后仍然执行 agent。",
"features.gatewayMode.title": "服务端代理执行(Gateway",
"features.groupChat.desc": "启用多代理协同群聊功能。",
-48
View File
@@ -552,54 +552,6 @@
"list.item.local.title": "自定义",
"loading.content": "调用技能中…",
"loading.plugin": "技能运行中…",
"localSystem.workingDirectory.agentDescription": "该助手下所有对话的默认工作目录",
"localSystem.workingDirectory.agentLevel": "代理工作目录",
"localSystem.workingDirectory.branchSearchPlaceholder": "搜索分支",
"localSystem.workingDirectory.branchesEmpty": "暂无本地分支",
"localSystem.workingDirectory.branchesHeading": "分支",
"localSystem.workingDirectory.branchesLoading": "加载分支中…",
"localSystem.workingDirectory.branchesNoMatch": "没有匹配的分支",
"localSystem.workingDirectory.cancel": "取消",
"localSystem.workingDirectory.checkoutAction": "切换分支",
"localSystem.workingDirectory.checkoutFailed": "切换分支失败",
"localSystem.workingDirectory.chooseDifferentFolder": "选择其他文件夹",
"localSystem.workingDirectory.clear": "清除目录",
"localSystem.workingDirectory.createBranchAction": "检出新分支…",
"localSystem.workingDirectory.current": "当前工作目录",
"localSystem.workingDirectory.detachedHead": "游离 HEAD,当前提交 {{sha}}",
"localSystem.workingDirectory.diffStatTooltip": "新增 {{added}} · 修改 {{modified}} · 删除 {{deleted}}",
"localSystem.workingDirectory.filesAdded": "新增",
"localSystem.workingDirectory.filesDeleted": "删除",
"localSystem.workingDirectory.filesEmpty": "没有未提交的变更",
"localSystem.workingDirectory.filesLoading": "加载中…",
"localSystem.workingDirectory.filesModified": "修改",
"localSystem.workingDirectory.ghMissing": "安装并登录 GitHub CLIgh)即可显示关联的 Pull Request",
"localSystem.workingDirectory.newBranchPlaceholder": "feature/新分支名称",
"localSystem.workingDirectory.noRecent": "暂无最近目录",
"localSystem.workingDirectory.notSet": "点击设置工作目录",
"localSystem.workingDirectory.placeholder": "输入目录路径,如 /Users/name/projects",
"localSystem.workingDirectory.prTooltipWithExtra": "{{title}}(此分支还有 {{count}} 个开放 PR",
"localSystem.workingDirectory.pullAction": "点击从 {{upstream}} 拉取 {{count}} 个提交",
"localSystem.workingDirectory.pullFailed": "拉取失败",
"localSystem.workingDirectory.pullInProgress": "拉取中…",
"localSystem.workingDirectory.pullNoop": "已是最新",
"localSystem.workingDirectory.pullSuccess": "拉取成功",
"localSystem.workingDirectory.pushAction": "点击推送 {{count}} 个提交到 {{target}}",
"localSystem.workingDirectory.pushActionNew": "点击创建 {{target}} 分支",
"localSystem.workingDirectory.pushFailed": "推送失败",
"localSystem.workingDirectory.pushInProgress": "推送中…",
"localSystem.workingDirectory.pushNoop": "已是最新",
"localSystem.workingDirectory.pushSuccess": "推送成功",
"localSystem.workingDirectory.recent": "最近使用",
"localSystem.workingDirectory.refreshGitStatus": "刷新分支与 PR 状态",
"localSystem.workingDirectory.removeRecent": "从最近目录中移除",
"localSystem.workingDirectory.selectFolder": "选择文件夹",
"localSystem.workingDirectory.title": "工作目录",
"localSystem.workingDirectory.topicDescription": "仅覆盖当前对话的工作目录",
"localSystem.workingDirectory.topicLevel": "对话覆盖",
"localSystem.workingDirectory.topicOverride": "为当前对话覆盖设置",
"localSystem.workingDirectory.uncommittedChanges_one": "未提交的更改:{{count}} 个文件",
"localSystem.workingDirectory.uncommittedChanges_other": "未提交的更改:{{count}} 个文件",
"mcpEmpty.deployment": "暂无部署选项",
"mcpEmpty.prompts": "该技能暂无提示词",
"mcpEmpty.resources": "该技能暂无资源",
-2
View File
@@ -5,8 +5,6 @@
"features.agentSelfIteration.title": "代理自我迭代",
"features.assistantMessageGroup.desc": "將助手訊息及其工具調用結果彙整成群組顯示",
"features.assistantMessageGroup.title": "助手訊息彙整群組",
"features.executionDeviceSwitcher.desc": "在異構代理工具列中顯示執行設備切換器,讓您可以將執行路由至此設備、雲端沙盒或綁定的遠端設備。",
"features.executionDeviceSwitcher.title": "執行設備切換器",
"features.gatewayMode.desc": "透過 Gateway WebSocket 在伺服器端執行代理任務,而非在本機運行。可加快執行速度並降低用戶端資源使用。",
"features.gatewayMode.title": "伺服器端代理執行(Gateway",
"features.groupChat.desc": "啟用多智能體群組聊天編排功能。",