mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 09:37:28 +00:00
* ♻️ refactor(acp): move agent provider to agencyConfig + restore creation entry - Move AgentProviderConfig from chatConfig to agencyConfig.heterogeneousProvider - Rename type from 'acp' to 'claudecode' for clarity - Restore Claude Code agent creation entry in sidebar + menu - Prioritize heterogeneousProvider check over gateway mode in execution flow - Remove ACP settings from AgentChat form (provider is set at creation time) - Add getAgencyConfigById selector for cleaner access - Use existing agent workingDirectory instead of duplicating in provider config Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> ✨ feat(acp): defer terminal events + extract model/usage per turn Three improvements to ACP stream handling: 1. Defer agent_runtime_end/error: Previously the adapter emitted terminal events from result.type directly into the Gateway handler. The handler immediately fires fetchAndReplaceMessages which reads stale DB state (before we persist final content/tools). Fix: intercept terminal events in the executor's event loop and forward them only AFTER content + metadata has been written to DB. 2. Extract model/usage per assistant event: Claude Code sets model name and token usage on every assistant event. Adapter now emits a 'step_complete' event with phase='turn_metadata' carrying these. Executor accumulates input/output/cache tokens across turns and persists them onto the assistant message (model + metadata.totalTokens). 3. Missing final text fix: The accumulated assistant text was being written AFTER agent_runtime_end triggered fetchAndReplaceMessages, so the UI rendered stale (empty) content. Deferred terminals solve this. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> 🐛 fix(acp): eliminate orphan-tool warning flicker during streaming Root cause: LobeHub's conversation-flow parser (collectToolMessages) filters tool messages by matching `tool_call_id` against `assistant.tools[].id`. The previous flow created tool messages FIRST, then updated assistant.tools[], which opened a brief window where the UI saw tool messages that had no matching entry in the parent's tools array — rendering them as "orphan" with a scary "请删除" warning to the user. Fix: Reorder persistNewToolCalls into three phases: 1. Pre-register tool entries in assistant.tools[] (id only, no result_msg_id) 2. Create the tool messages in DB (tool_call_id matches pre-registered ids) 3. Back-fill result_msg_id and re-write assistant.tools[] Between phase 1 and phase 3 the UI always sees consistent state: every tool message in DB has a matching entry in the parent's tools array. Verified: orphan count stays at 0 across all sampled timepoints during streaming (vs 1+ before fix). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> 🐛 fix(acp): dedupe tool_use + capture tool_result + persist result_msg_id Three critical fixes to ACP tool-call handling, discovered via live testing: 1. **tool_use dedupe** — Claude Code stream-json previously produced 15+ duplicate tool messages per tool_call_id. The adapter now tracks emitted ids so each tool_use → exactly one tool message. 2. **tool_result content capture** — tool_result blocks live in `type: 'user'` events in Claude Code's stream-json, not in assistant events. The adapter now handles the 'user' event type and emits a new `tool_result` HeterogeneousAgentEvent which the executor consumes to call messageService.updateToolMessage() with the actual result content. Previously all tool messages had empty content. 3. **result_msg_id on assistant.tools[]** — LobeHub's parse() step links tool messages to their parent assistant turn via tools[].result_msg_id. Without it, the UI renders orphan-message warnings. The executor now captures the tool message id returned by messageService.createMessage and writes it back into the assistant.tools[] JSONB. Also adds vitest config + 9 unit tests for the adapter covering lifecycle, content mapping, and tool_result handling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> ✨ feat(acp): integrate external AI agents via ACP protocol Adds support for connecting external AI agents (Claude Code and future agents like Codex, Kimi CLI) into LobeHub Desktop via a new heterogeneous agent layer that adapts agent-specific protocols to the unified Gateway event stream. Architecture: - New @lobechat/heterogeneous-agents package: pluggable adapters that convert agent-specific outputs to AgentStreamEvent - AcpCtr (Electron main): agent-agnostic process manager with CLI presets registry, broadcasts raw stdout lines to renderer - acpExecutor (renderer): subscribes to broadcasts, runs events through adapter, feeds into existing createGatewayEventHandler - Tool call persistence: creates role='tool' messages via messageService before emitting tool_start/tool_end to the handler Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: rename acpExecutor to heterogeneousAgentExecutor - Rename file acpExecutor.ts → heterogeneousAgentExecutor.ts - Rename ACPExecutorParams → HeterogeneousAgentExecutorParams - Rename executeACPAgent → executeHeterogeneousAgent - Change operation type from execAgentRuntime to execHeterogeneousAgent - Change operation label to "Heterogeneous Agent Execution" - Change error type from ACPError to HeterogeneousAgentError - Rename acpData/acpContext variables to heteroData/heteroContext Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: rename AcpCtr and acp service to heterogeneousAgent Desktop side: - AcpCtr.ts → HeterogeneousAgentCtr.ts - groupName 'acp' → 'heterogeneousAgent' - IPC channels: acpRawLine → heteroAgentRawLine, etc. Renderer side: - services/electron/acp.ts → heterogeneousAgent.ts - ACPService → HeterogeneousAgentService - acpService → heterogeneousAgentService - Update all IPC channel references in executor Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🔧 chore: switch CC permission mode to bypassPermissions Use bypassPermissions to allow Bash and other tool execution. Previously acceptEdits only allowed file edits, causing Bash tool calls to fail during CC execution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: don't fallback activeAgentId to empty string in AgentIdSync Empty string '' causes chat store to have a truthy but invalid activeAgentId, breaking message routing. Pass undefined instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: use AI_RUNTIME_OPERATION_TYPES for loading and cancel states stopGenerateMessage and cancelOperation were hardcoding ['execAgentRuntime', 'execServerAgentRuntime'], missing execHeterogeneousAgent. This caused: - CC execution couldn't be cancelled via stop button - isAborting flag wasn't set for heterogeneous agent operations Now uses AI_RUNTIME_OPERATION_TYPES constant everywhere to ensure all AI runtime operation types are handled consistently. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ✨ feat: split multi-step CC execution into separate assistant messages Claude Code's multi-turn execution (thinking → tool → final text) was accumulating everything onto a single assistant message, causing the final text response to appear inside the tool call message. Changes: - ClaudeCodeAdapter: detect message.id changes and emit stream_end + stream_start with newStep flag at step boundaries - heterogeneousAgentExecutor: on newStep stream_start, persist previous step's content, create a new assistant message, reset accumulators, and forward the new message ID to the gateway handler This ensures each LLM turn gets its own assistant message, matching how Gateway mode handles multi-step agent execution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: fix multi-step CC execution and add DB persistence tests Adapter fixes: - Fix false step boundary on first assistant after init (ghost empty message) Executor fixes: - Fix parentId chain: new-step assistant points to last tool message - Fix content contamination: sync snapshot of content accumulators on step boundary - Fix type errors (import path, ChatToolPayload casts, sessionId guard) Tests: - Add ClaudeCodeAdapter unit tests (multi-step, usage, flush, edge cases) - Add ClaudeCodeAdapter E2E test (full multi-step session simulation) - Add registry tests - Add executor DB persistence tests covering: - Tool 3-phase write (pre-register → create → backfill) - Tool result content + error persistence - Multi-step parentId chain (assistant → tool → assistant) - Final content/reasoning/model/usage writes - Sync snapshot preventing cross-step contamination - Error handling with partial content persistence - Full multi-step E2E (Read → Write → text) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🔧 chore: add orphan tool regression tests and debug trace - Add orphan tool regression tests for multi-turn tool execution - Add __HETERO_AGENT_TRACE debug instrumentation for event flow capture Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ✨ feat: support image attachments in CC via stream-json stdin - Main process downloads files by ID from cloud (GET {domain}/f/{fileId}) - Local disk cache at lobehub-storage/heteroAgent/files/ (by fileId) - When fileIds present, switches to --input-format stream-json + stdin pipe - Constructs user message with text + image content blocks (base64) - Pass fileIds through executor → service → IPC → controller Closes LOBE-7254 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: pass imageList instead of fileIds for CC vision support - Use imageList (with url) instead of fileIds — Main downloads from URL directly - Cache by image id at lobehub-storage/heteroAgent/files/ - Only images (not arbitrary files) are sent to CC via stream-json stdin Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: read imageList from persisted DB message instead of chatUploadFileList chatUploadFileList is cleared after sendMessageInServer, so tempImages was empty by the time the executor ran. Now reads imageList from the persisted user message in heteroData.messages instead. Also removes debug console.log/console.error statements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * update i18n * 🐛 fix: prevent orphan tool UI by deferring handler events during step transition Root cause: when a CC step boundary occurs, the adapter produces [stream_end, stream_start(newStep), stream_chunk(tools_calling)] in one batch. The executor deferred stream_start via persistQueue but forwarded stream_chunk synchronously — handler received tools_calling BEFORE stream_start, dispatching tools to the OLD assistant message → UI showed orphan tool warning. Fix: add pendingStepTransition flag that defers ALL handler-bound events through persistQueue until stream_start is forwarded, guaranteeing correct event ordering. Also adds: - Minimal regression test in gatewayEventHandler confirming correct ordering - Multi-tool per turn regression test from real LOBE-7240 trace - Data-driven regression replaying 133 real CC events from regression.json Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ✨ feat: add lab toggle for heterogeneous agent (Claude Code) - Add enableHeterogeneousAgent to UserLabSchema + defaults (off by default) - Add selector + settings UI toggle (desktop only) - Gate "Claude Code Agent" sidebar menu item behind the lab setting - Remove regression.json (no longer needed) - Add i18n keys for the lab feature Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: gate heterogeneous agent execution behind isDesktop check Without this, web users with an agent that has heterogeneousProvider config would hit the CC execution path and fail (no Electron IPC). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: rename tool identifier from acp-agent to claude-code Also update operation label to "External agent running". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ✨ feat: add CLI agent detectors for system tools settings Detect agentic coding CLIs installed on the system: - Claude Code, Codex, Gemini CLI, Qwen Code, Kimi CLI, Aider - Uses validated detection (which + --version keyword matching) - New "CLI Agents" category in System Tools settings - i18n for en-US and zh-CN Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: fix token usage over-counting in CC execution Two bugs fixed: 1. Adapter: same message.id emitted duplicate step_complete(turn_metadata) for each content block (thinking/text/tool_use) — all carry identical usage. Now deduped by message.id, only emits once per turn. 2. Executor: CC result event contains authoritative session-wide usage totals but was ignored. Now adapter emits step_complete(result_usage) from the result event, executor uses it to override accumulated values. Fixes LOBE-7261 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🔧 chore: gitignore cc-stream.json and .heterogeneous-tracing/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🔧 chore: untrack .heerogeneous-tracing/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ✨ feat: wire CC session resume for multi-turn conversations Reads `ccSessionId` from topic metadata and passes it as `resumeSessionId` into the heterogeneous-agent executor, which forwards it into the Electron main-process controller. `sendPrompt` then appends `--resume <id>` so the next turn continues the same Claude Code session instead of starting fresh. After each run, the CC init-event session_id (captured by the adapter) is persisted back onto the topic so the chain survives page reloads. Also stops killing the session in `finally` — it needs to stay alive for subsequent turns; cleanup happens on topic deletion or app quit. * 🐛 fix: record cache token breakdown in CC execution metadata The prior token-usage fix only wrote totals — `inputCachedTokens`, `inputWriteCacheTokens` and `inputCacheMissTokens` were dropped, so the pricing card rendered zero cached/write-cache tokens even though CC had reported them. Map the accumulated Anthropic-shape usage to the same breakdown the anthropic usage converter emits, so CC turns display consistently with Gateway turns. Refs LOBE-7261 * ♻️ refactor: write CC usage under metadata.usage instead of flat fields Flat `inputCachedTokens / totalInputTokens / ...` on `MessageMetadata` are the legacy shape; new code should put usage under `metadata.usage`. Move the CC executor to the nested shape so it matches the convention the rest of the runtime is migrating to. Refs LOBE-7261 * ♻️ refactor(types): mark flat usage fields on MessageMetadata as deprecated Stop extending `ModelUsage` and redeclare each token field inline with a `@deprecated` JSDoc pointing to `metadata.usage` (nested). Existing readers still type-check, but IDEs now surface the deprecation so writers migrate to the nested shape. * ♻️ refactor(types): mark flat performance fields on MessageMetadata as deprecated Stop extending `ModelPerformance` and redeclare `duration` / `latency` / `tps` / `ttft` inline with `@deprecated`, pointing at `metadata.performance`. Mirrors the same treatment just done for the token usage fields. * ✨ feat: CC agent gets claude avatar + lands on chat page directly Skip the shared createAgent hook's /profile redirect for the Claude Code variant — its config is fixed so the profile editor would be noise — and preseed the Claude avatar from @lobehub/icons-static-avatar so new CC agents aren't blank. * 🐛 fix(conversation-flow): read usage/performance from nested metadata `splitMetadata` only scraped the legacy flat token/perf fields, so messages written under the new canonical shape (`metadata.usage`, `metadata.performance`) never populated `UIChatMessage.usage` and the Extras panel rendered blank. - Prefer nested `metadata.usage` / `metadata.performance` when present; keep flat scraping as fallback for pre-migration rows. - Add `usage` / `performance` to FlatListBuilder's filter sets so the nested blobs don't leak into `otherMetadata`. - Drop the stale `usage! || metadata` fallback in the Assistant / CouncilMember Extra renders — with splitMetadata fixed, `item.usage` is always populated when usage data exists, and passing raw metadata as ModelUsage is wrong now that the flat fields are gone. * 🐛 fix: skip stores.reset on initial dataSyncConfig hydration `useDataSyncConfig`'s SWR onSuccess called `refreshUserData` (which runs `stores.reset()`) whenever the freshly-fetched config didn't deep-equal the hard-coded initial `{ storageMode: 'cloud' }` — which happens on every first load. The reset would wipe `chat.activeAgentId` just after `AgentIdSync` set it from the URL, and because `AgentIdSync`'s sync effects are keyed on `params.aid` (which hasn't changed), they never re-fire to restore it. Result: topic SWR saw `activeAgentId === ''`, treated the container as invalid, and left the sidebar stuck on the loading skeleton. Gate the reset on `isInitRemoteServerConfig` so it only runs when the user actually switches sync modes, not on the first hydration. * ✨ feat(claude-code): wire Inspector layer for CC tool calls Mirrors local-system: each CC tool now has an inspector rendered above the tool-call output instead of an opaque default row. - `Inspector.tsx` — registry that passes the CC tool name itself as the shared factories' `translationKey`. react-i18next's missing-key fallback surfaces the literal name (Bash / Edit / Glob / Grep / Read / Write), so we don't add CC-specific entries to the plugin locale. - `ReadInspector.tsx` / `WriteInspector.tsx` — thin adapters that map Anthropic-native args (`file_path` / `offset` / `limit`) onto the shared inspectors' shape (`path` / `startLine` / `endLine`), so shared stays pure. Bash / Edit / Glob / Grep reuse shared factories directly. - Register `ClaudeCodeInspectors` under `claude-code` in the builtin-tools inspector dispatch. Also drops the redundant `Render/Bash/index.tsx` wrapper and pipes the shared `RunCommandRender` straight into the registry. * ♻️ refactor: use agentSelectors.isCurrentAgentHeterogeneous Two callsites (ConversationArea / useActionsBarConfig) were reaching into `currentAgentConfig(...)?.agencyConfig?.heterogeneousProvider` inline. Switch them to the existing `isCurrentAgentHeterogeneous` selector so the predicate lives in one place. * update * ♻️ refactor: drop no-op useCallback wrapper in AgentChat form `handleFinish` just called `updateConfig(values)` with no extra logic; the zustand action is already a stable reference so the wrapper added no memoization value. Leftover from the ACP refactor (930ba41fe3) where the handler once did more work — hand the action straight to `onFinish`. * update * ⏪ revert: roll back conversation-flow nested-shape reads Unwind the `splitMetadata` nested-preference + `FlatListBuilder` filter additions from 306fd6561f. The nested `metadata.usage` / `metadata.performance` promotion now happens in `parse.ts` (and a `?? metadata?.usage` fallback at the UI callsites), so conversation-flow's transformer layer goes back to its original flat-field-only behavior. * update * 🐛 fix(cc): wire Stop to cancel the external Claude Code process Previously hitting Stop only flipped the `execHeterogeneousAgent` operation to `cancelled` in the store — the spawned `claude -p` process kept running and kept streaming/persisting output for the user. The op's abort signal had no listeners and no `onCancelHandler` was registered. - On session start, register an `onCancelHandler` that calls `heterogeneousAgentService.cancelSession(sessionId)` (SIGINT to the CLI). - Read the op's `abortController.signal` and short-circuit `onRawLine` so late events the CLI emits between SIGINT and exit don't leak into DB writes. - Skip the error-event forward in `onError` / the outer catch when the abort came from the user, so the UI doesn't surface a misleading error toast on top of the already-cancelled operation. Verified end-to-end: prompt that runs a long sequence of Reads → click Stop → `claude -p` process is gone within 2s, op status = cancelled, no error message written to the conversation. * ✨ feat(sidebar): mark heterogeneous agents with an "External" tag Pipes the agent's `agencyConfig.heterogeneousProvider.type` through the sidebar data flow and renders a `<Tag>` next to the title for any agent driven by an external CLI runtime (Claude Code today, more later). Mirrors the group-member External pattern so future provider types just need a label swap — the field is a string, not a boolean. - `SidebarAgentItem.heterogeneousType?: string | null` on the shared type - `HomeRepository.getSidebarAgentList` selects `agents.agencyConfig` and derives the field via `cleanObject` - `AgentItem` shows `<Tag>{t('group.profile.external')}</Tag>` when the field is present Verified client-side by injecting `heterogeneousType: 'claudecode'` into a sidebar item at runtime — the "外部" tag renders next to the title in the zh-CN locale. * ♻️ refactor(i18n): dedicated key for the sidebar external-agent tag Instead of reusing `group.profile.external` (which is about group members that are user-linked rather than virtual), add `agentSidebar.externalTag` specifically for the heterogeneous-runtime tag. Keeps the two concepts separate so we can swap this one to "Claude Code" / provider-specific labels later without touching the group UI copy. Remember to run `pnpm i18n` before the PR so the remaining locales pick up the new key. * 🐛 fix: clear remaining CI type errors Three small fixes so `tsgo --noEmit` exits clean: - `AgentIdSync`: `useChatStoreUpdater` is typed off the chat-store key, whose `activeAgentId` is `string` (initial ''). Coerce the optional URL param to `''` so the store key type matches; `createStoreUpdater` still skips the setState when the value is undefined-ish. - `heterogeneousAgentExecutor.test.ts`: `scope: 'session'` isn't a valid `MessageMapScope` (the union dropped that variant); switch the fixture to `'main'`, which is the correct scope for agent main conversations. - Same test file: `Array.at(-1)` is `T | undefined`; non-null assert since the preceding calls guarantee the slot is populated. * 🐛 fix: loosen createStoreUpdater signature to accept nullable values Upstream `createStoreUpdater` types `value` as exactly `T[Key]`, so any call site feeding an optional source (URL param, selector that may return undefined) fails type-check — even though the runtime already guards `typeof value !== 'undefined'` and no-ops in that case. Wrap it once in `store/utils/createStoreUpdater.ts` with a `T[Key] | null | undefined` value type so callers can pass `params.aid` directly, instead of the lossy `?? ''` fallback the previous commit used (which would have written an empty-string sentinel into the chat store). Swap the import in `AgentIdSync.tsx`. --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1046 lines
79 KiB
JSON
1046 lines
79 KiB
JSON
{
|
||
"_cloud.officialProvider": "{{name}} Official Model Service",
|
||
"about.title": "About",
|
||
"accountDeletion.cancelButton": "Cancel Deletion",
|
||
"accountDeletion.cancelConfirmTitle": "Cancel account deletion request?",
|
||
"accountDeletion.cancelFailed": "Failed to cancel deletion request",
|
||
"accountDeletion.cancelSuccess": "Deletion request cancelled",
|
||
"accountDeletion.confirmCheckbox": "I have read and understood the above, and confirm to proceed with account deletion",
|
||
"accountDeletion.confirmContent": "After submission, you will enter a <0>72-hour</0> cooling-off period during which you can cancel at any time. Once the period ends, your account data will be permanently deleted, unpaid invoices will be canceled immediately, and paid fees will not be refunded. Your registration and deletion records will be retained for compliance purposes.",
|
||
"accountDeletion.confirmOk": "Delete Account",
|
||
"accountDeletion.confirmRequired": "Please confirm you understand the consequences",
|
||
"accountDeletion.confirmTitle": "Delete Account?",
|
||
"accountDeletion.desc": "Permanently delete your account and all associated data. This action cannot be undone.",
|
||
"accountDeletion.pendingDesc": "Your account is scheduled for deletion",
|
||
"accountDeletion.pendingMessage": "Your account will be deleted in {{hours}} hours",
|
||
"accountDeletion.reasonPlaceholder": "Please tell us why you want to delete your account...",
|
||
"accountDeletion.reasonRequired": "Please provide a reason for deletion",
|
||
"accountDeletion.requestButton": "Request Account Deletion",
|
||
"accountDeletion.requestFailed": "Failed to request account deletion",
|
||
"accountDeletion.requestSuccess": "Deletion request submitted",
|
||
"accountDeletion.sectionTitle": "Account Deletion",
|
||
"accountDeletion.title": "Delete Account",
|
||
"advancedSettings": "Advanced Settings",
|
||
"agentCronJobs.addJob": "Add Scheduled Task",
|
||
"agentCronJobs.clearTopics": "Clear Topics",
|
||
"agentCronJobs.clearTopicsFailed": "Failed to clear topics",
|
||
"agentCronJobs.confirmClearTopics": "Are you sure you want to clear {{count}} topics?",
|
||
"agentCronJobs.confirmDelete": "Are you sure you want to delete this scheduled task?",
|
||
"agentCronJobs.confirmDeleteCronJob": "Are you sure you want to delete this scheduled task? All associated topics will also be deleted.",
|
||
"agentCronJobs.content": "Task Content",
|
||
"agentCronJobs.create": "Create",
|
||
"agentCronJobs.createSuccess": "Scheduled task created successfully",
|
||
"agentCronJobs.deleteCronJob": "Delete Scheduled Task",
|
||
"agentCronJobs.deleteFailed": "Failed to delete scheduled task",
|
||
"agentCronJobs.deleteJob": "Delete Task",
|
||
"agentCronJobs.deleteSuccess": "Scheduled task deleted successfully",
|
||
"agentCronJobs.description": "Automate your agent with scheduled executions",
|
||
"agentCronJobs.disable": "Disable",
|
||
"agentCronJobs.editJob": "Edit Scheduled Task",
|
||
"agentCronJobs.empty.description": "Create your first scheduled task to automate your agent",
|
||
"agentCronJobs.empty.title": "No scheduled tasks yet",
|
||
"agentCronJobs.enable": "Enable",
|
||
"agentCronJobs.form.at": "at",
|
||
"agentCronJobs.form.content.placeholder": "Enter the prompt or instruction for the agent",
|
||
"agentCronJobs.form.every": "Every",
|
||
"agentCronJobs.form.frequency": "Frequency",
|
||
"agentCronJobs.form.hours": "hour(s)",
|
||
"agentCronJobs.form.maxExecutions": "Stop after",
|
||
"agentCronJobs.form.maxExecutions.placeholder": "Leave empty for unlimited",
|
||
"agentCronJobs.form.name.placeholder": "Enter task name",
|
||
"agentCronJobs.form.time": "Time",
|
||
"agentCronJobs.form.timeRange.end": "End Time",
|
||
"agentCronJobs.form.timeRange.start": "Start Time",
|
||
"agentCronJobs.form.times": "times",
|
||
"agentCronJobs.form.timezone": "Timezone",
|
||
"agentCronJobs.form.unlimited": "Run continuously",
|
||
"agentCronJobs.form.validation.contentRequired": "Task content is required",
|
||
"agentCronJobs.form.validation.invalidTimeRange": "Start time must be before end time",
|
||
"agentCronJobs.form.validation.nameRequired": "Task name is required",
|
||
"agentCronJobs.interval.12hours": "Every 12 hours",
|
||
"agentCronJobs.interval.1hour": "Every hour",
|
||
"agentCronJobs.interval.30min": "Every 30 minutes",
|
||
"agentCronJobs.interval.6hours": "Every 6 hours",
|
||
"agentCronJobs.interval.daily": "Daily",
|
||
"agentCronJobs.interval.weekly": "Weekly",
|
||
"agentCronJobs.lastExecuted": "Last Executed",
|
||
"agentCronJobs.maxExecutions": "Max Executions",
|
||
"agentCronJobs.name": "Task Name",
|
||
"agentCronJobs.never": "Never",
|
||
"agentCronJobs.noExecutionResults": "No execution results",
|
||
"agentCronJobs.remainingExecutions": "Remaining: {{count}}",
|
||
"agentCronJobs.save": "Save",
|
||
"agentCronJobs.saveAsNew": "Save as New",
|
||
"agentCronJobs.schedule": "Schedule",
|
||
"agentCronJobs.scheduleType.daily": "Daily",
|
||
"agentCronJobs.scheduleType.hourly": "Hourly",
|
||
"agentCronJobs.scheduleType.weekly": "Weekly",
|
||
"agentCronJobs.status.depleted": "Depleted",
|
||
"agentCronJobs.status.disabled": "Disabled",
|
||
"agentCronJobs.status.enabled": "Enabled",
|
||
"agentCronJobs.timeRange": "Time Range",
|
||
"agentCronJobs.title": "Scheduled Tasks",
|
||
"agentCronJobs.unlimited": "Unlimited",
|
||
"agentCronJobs.unnamedTask": "Unnamed Task",
|
||
"agentCronJobs.updateSuccess": "Scheduled task updated successfully",
|
||
"agentCronJobs.weekday.friday": "Friday",
|
||
"agentCronJobs.weekday.monday": "Monday",
|
||
"agentCronJobs.weekday.saturday": "Saturday",
|
||
"agentCronJobs.weekday.short.friday": "Fri",
|
||
"agentCronJobs.weekday.short.monday": "Mon",
|
||
"agentCronJobs.weekday.short.saturday": "Sat",
|
||
"agentCronJobs.weekday.short.sunday": "Sun",
|
||
"agentCronJobs.weekday.short.thursday": "Thu",
|
||
"agentCronJobs.weekday.short.tuesday": "Tue",
|
||
"agentCronJobs.weekday.short.wednesday": "Wed",
|
||
"agentCronJobs.weekday.sunday": "Sunday",
|
||
"agentCronJobs.weekday.thursday": "Thursday",
|
||
"agentCronJobs.weekday.tuesday": "Tuesday",
|
||
"agentCronJobs.weekday.wednesday": "Wednesday",
|
||
"agentCronJobs.weekdays": "Weekdays",
|
||
"agentCronJobs.weekdays.fri": "Fri",
|
||
"agentCronJobs.weekdays.mon": "Mon",
|
||
"agentCronJobs.weekdays.sat": "Sat",
|
||
"agentCronJobs.weekdays.sun": "Sun",
|
||
"agentCronJobs.weekdays.thu": "Thu",
|
||
"agentCronJobs.weekdays.tue": "Tue",
|
||
"agentCronJobs.weekdays.wed": "Wed",
|
||
"agentDocuments.columns.actions": "Actions",
|
||
"agentDocuments.columns.document": "Document",
|
||
"agentDocuments.columns.template": "Template",
|
||
"agentDocuments.createSuccess": "Documents created from template",
|
||
"agentDocuments.createWithTemplate": "Create with this template",
|
||
"agentDocuments.deleteConfirm": "Delete this document?",
|
||
"agentDocuments.deleteSuccess": "Document deleted",
|
||
"agentDocuments.desc": "Manage documents for this agent and create starter files from a template.",
|
||
"agentDocuments.empty": "No documents yet",
|
||
"agentDocuments.overwriteConfirm.confirm": "Overwrite and apply",
|
||
"agentDocuments.overwriteConfirm.more": "and {{count}} more",
|
||
"agentDocuments.overwriteConfirm.summary": "Applying {{templateName}} will create {{createCount}} new documents and overwrite {{overwriteCount}} existing documents.",
|
||
"agentDocuments.overwriteConfirm.title": "Overwrite existing documents?",
|
||
"agentDocuments.overwriteConfirm.warning": "Existing documents with the same filename will be replaced.",
|
||
"agentDocuments.title": "Agent Documents",
|
||
"agentInfoDescription.basic.avatar": "Avatar",
|
||
"agentInfoDescription.basic.description": "Description",
|
||
"agentInfoDescription.basic.name": "Name",
|
||
"agentInfoDescription.basic.tags": "Tags",
|
||
"agentInfoDescription.basic.title": "Agent info",
|
||
"agentInfoDescription.chat.enableHistoryCount": "Enable Message History Count",
|
||
"agentInfoDescription.chat.historyCount": "Message History Count",
|
||
"agentInfoDescription.chat.no": "No",
|
||
"agentInfoDescription.chat.searchMode": "Search Mode",
|
||
"agentInfoDescription.chat.title": "Chat Preferences",
|
||
"agentInfoDescription.chat.yes": "Yes",
|
||
"agentInfoDescription.model.maxTokens": "Max Token Count",
|
||
"agentInfoDescription.model.model": "Model",
|
||
"agentInfoDescription.model.provider": "Provider",
|
||
"agentInfoDescription.model.temperature": "Temperature",
|
||
"agentInfoDescription.model.title": "Model Settings",
|
||
"agentInfoDescription.model.topP": "Top P Value",
|
||
"agentInfoDescription.plugins.count": "Skill Settings ({{count}})",
|
||
"agentInfoDescription.plugins.empty": "No Skills installed yet",
|
||
"agentInfoDescription.plugins.title": "Installed Skills",
|
||
"agentInfoDescription.role.systemRole": "Agent Profile",
|
||
"agentInfoDescription.role.title": "Agent Profile",
|
||
"agentInfoDescription.value.unset": "Not Set",
|
||
"agentInfoDescription.value.untitled": "Untitled Agent",
|
||
"agentSkillDetail.addedAt": "Added",
|
||
"agentSkillDetail.publishedAt": "Published",
|
||
"agentSkillDetail.repository": "GitHub Repository",
|
||
"agentSkillDetail.skillContent": "Skill Content",
|
||
"agentSkillDetail.sourceUrl": "Skill Import Source",
|
||
"agentSkillDetail.updatedAt": "Updated",
|
||
"agentSkillEdit.descriptionDesc": "A brief summary of what the skill does, helping the agent understand when to use it",
|
||
"agentSkillEdit.fileReadonly": "This file is read-only. Only skill description and instructions can be edited.",
|
||
"agentSkillEdit.instructions": "Instructions",
|
||
"agentSkillEdit.instructionsDesc": "The core instructions in Markdown that define the skill behavior and workflow",
|
||
"agentSkillEdit.instructionsPlaceholder": "Enter the skill instructions in Markdown format...",
|
||
"agentSkillEdit.nameDesc": "The unique identifier for this skill, not editable after creation",
|
||
"agentSkillEdit.saveSuccess": "Skill updated successfully",
|
||
"agentSkillEdit.title": "Skill Settings",
|
||
"agentSkillItem.deleteConfirm.desc": "Are you sure you want to delete the agent skill \"{{name}}\"? This action cannot be undone.",
|
||
"agentSkillItem.deleteConfirm.title": "Delete Agent Skill",
|
||
"agentSkillModal.content": "Skill Content",
|
||
"agentSkillModal.contentPlaceholder": "Enter skill content in Markdown format...",
|
||
"agentSkillModal.description": "Description",
|
||
"agentSkillModal.descriptionPlaceholder": "Briefly describe this skill",
|
||
"agentSkillModal.github.desc": "Paste the URL of a skill directory from a public GitHub repository. The directory must contain a SKILL.md file.",
|
||
"agentSkillModal.github.title": "Import from GitHub",
|
||
"agentSkillModal.github.urlPlaceholder": "https://github.com/username/repo/tree/main/skills/my-skill",
|
||
"agentSkillModal.importError": "Import failed: {{error}}",
|
||
"agentSkillModal.importSuccess": "Agent Skill imported successfully",
|
||
"agentSkillModal.upload.desc": "Upload a local .zip or .skill file to install.",
|
||
"agentSkillModal.upload.dragText": "Drag and drop or click to upload",
|
||
"agentSkillModal.upload.requirementSkillMd": "SKILL.md contains skill name and description in YAML format",
|
||
"agentSkillModal.upload.requirementZip": ".zip or .skill file with SKILL.md in root directory",
|
||
"agentSkillModal.upload.requirements": "File Requirements",
|
||
"agentSkillModal.upload.title": "Upload Skill",
|
||
"agentSkillModal.upload.uploading": "Uploading...",
|
||
"agentSkillModal.url.desc": "Import a skill by providing a direct link to a SKILL.md file.",
|
||
"agentSkillModal.url.title": "Import from URL",
|
||
"agentSkillModal.url.urlPlaceholder": "https://example.com/path/to/SKILL.md",
|
||
"agentSkillTag": "Agent Skill",
|
||
"agentTab.chat": "Chat Preferences",
|
||
"agentTab.documents": "Documents",
|
||
"agentTab.meta": "Agent info",
|
||
"agentTab.modal": "Model Settings",
|
||
"agentTab.opening": "Opening Settings",
|
||
"agentTab.plugin": "Skill Settings",
|
||
"agentTab.prompt": "Agent Profile",
|
||
"agentTab.tts": "Voice Service",
|
||
"analytics.telemetry.desc": "Help us improve {{appName}} with anonymous usage data",
|
||
"analytics.telemetry.title": "Send Anonymous Usage Data",
|
||
"analytics.title": "Analytics",
|
||
"checking": "Checking...",
|
||
"checkingPermissions": "Checking permissions...",
|
||
"creds.actions.delete": "Delete",
|
||
"creds.actions.deleteConfirm.cancel": "Cancel",
|
||
"creds.actions.deleteConfirm.content": "This credential will be permanently deleted. This action cannot be undone.",
|
||
"creds.actions.deleteConfirm.ok": "Delete",
|
||
"creds.actions.deleteConfirm.title": "Delete Credential?",
|
||
"creds.actions.edit": "Edit",
|
||
"creds.actions.view": "View",
|
||
"creds.create": "New Credential",
|
||
"creds.createModal.fillForm": "Fill Details",
|
||
"creds.createModal.selectType": "Select Type",
|
||
"creds.createModal.title": "Create Credential",
|
||
"creds.edit.title": "Edit Credential",
|
||
"creds.empty": "No credentials configured yet",
|
||
"creds.file.authRequired": "Please sign in to the Market first",
|
||
"creds.file.uploadFailed": "File upload failed",
|
||
"creds.file.uploadSuccess": "File uploaded successfully",
|
||
"creds.file.uploading": "Uploading...",
|
||
"creds.form.addPair": "Add Key-Value Pair",
|
||
"creds.form.back": "Back",
|
||
"creds.form.cancel": "Cancel",
|
||
"creds.form.connectionRequired": "Please select an OAuth connection",
|
||
"creds.form.description": "Description",
|
||
"creds.form.descriptionPlaceholder": "Optional description for this credential",
|
||
"creds.form.file": "Credential File",
|
||
"creds.form.fileRequired": "Please upload a file",
|
||
"creds.form.key": "Identifier",
|
||
"creds.form.keyPattern": "Identifier can only contain letters, numbers, underscores, and hyphens",
|
||
"creds.form.keyRequired": "Identifier is required",
|
||
"creds.form.name": "Display Name",
|
||
"creds.form.nameRequired": "Display name is required",
|
||
"creds.form.save": "Save",
|
||
"creds.form.selectConnection": "Select OAuth Connection",
|
||
"creds.form.selectConnectionPlaceholder": "Choose a connected account",
|
||
"creds.form.selectedFile": "Selected file",
|
||
"creds.form.submit": "Create",
|
||
"creds.form.uploadDesc": "Supports JSON, PEM, and other credential file formats",
|
||
"creds.form.uploadHint": "Click or drag file to upload",
|
||
"creds.form.valuePlaceholder": "Enter value",
|
||
"creds.form.values": "Key-Value Pairs",
|
||
"creds.oauth.noConnections": "No OAuth connections available. Please connect an account first.",
|
||
"creds.signIn": "Sign In to Market",
|
||
"creds.signInRequired": "Please sign in to the Market to manage your credentials",
|
||
"creds.table.actions": "Actions",
|
||
"creds.table.key": "Identifier",
|
||
"creds.table.lastUsed": "Last Used",
|
||
"creds.table.name": "Name",
|
||
"creds.table.neverUsed": "Never",
|
||
"creds.table.preview": "Preview",
|
||
"creds.table.type": "Type",
|
||
"creds.typeDesc.file": "Upload credential files like service accounts or certificates",
|
||
"creds.typeDesc.kv-env": "Store API keys and tokens as environment variables",
|
||
"creds.typeDesc.kv-header": "Store authorization values as HTTP headers",
|
||
"creds.typeDesc.oauth": "Link to an existing OAuth connection",
|
||
"creds.types.all": "All",
|
||
"creds.types.file": "File",
|
||
"creds.types.kv-env": "Environment",
|
||
"creds.types.kv-header": "Header",
|
||
"creds.types.oauth": "OAuth",
|
||
"creds.view.error": "Failed to load credential",
|
||
"creds.view.noValues": "No Values",
|
||
"creds.view.oauthNote": "OAuth credentials are managed by the connected service.",
|
||
"creds.view.title": "View Credential: {{name}}",
|
||
"creds.view.values": "Credential Values",
|
||
"creds.view.warning": "These values are sensitive. Do not share them with others.",
|
||
"danger.clear.action": "Clear Now",
|
||
"danger.clear.confirm": "Clear all chat data? This can't be undone.",
|
||
"danger.clear.desc": "Delete all data, including agents, files, messages, and skills. Your account will NOT be deleted.",
|
||
"danger.clear.success": "All session messages have been cleared",
|
||
"danger.clear.title": "Wipe Data",
|
||
"danger.reset.action": "Reset Now",
|
||
"danger.reset.confirm": "Reset all settings?",
|
||
"danger.reset.currentVersion": "Current Version",
|
||
"danger.reset.desc": "Restore all settings to defaults. Your data wont be deleted.",
|
||
"danger.reset.success": "All settings have been reset",
|
||
"danger.reset.title": "Reset All Settings",
|
||
"defaultAgent.model.desc": "Default model used when creating a new Agent",
|
||
"defaultAgent.model.title": "Model",
|
||
"defaultAgent.title": "Default Agent Settings",
|
||
"group.aiConfig": "Agent",
|
||
"group.common": "General",
|
||
"group.profile": "Account",
|
||
"group.subscription": "Plans",
|
||
"group.system": "System",
|
||
"groupTab.chat": "Chat",
|
||
"groupTab.members": "Members",
|
||
"groupTab.meta": "Basic Info",
|
||
"header.desc": "Preferences and model settings",
|
||
"header.global": "Global Settings",
|
||
"header.group": "Group Settings",
|
||
"header.groupDesc": "Manage group and chat preferences",
|
||
"header.session": "Session Settings",
|
||
"header.sessionDesc": "Agent Profile and session preferences",
|
||
"header.sessionWithName": "Session Settings · {{name}}",
|
||
"header.title": "Settings",
|
||
"hotkey.clearBinding": "Clear binding",
|
||
"hotkey.conflicts": "Conflicts with existing hotkeys",
|
||
"hotkey.errors.CONFLICT": "Hotkey conflict: This hotkey is already assigned to another function",
|
||
"hotkey.errors.INVALID_FORMAT": "Invalid hotkey format: Please use the correct format (e.g., CommandOrControl+E)",
|
||
"hotkey.errors.INVALID_ID": "Invalid hotkey ID",
|
||
"hotkey.errors.NO_MODIFIER": "Hotkey must include a modifier key (Ctrl, Alt, Shift, etc.)",
|
||
"hotkey.errors.SYSTEM_OCCUPIED": "Hotkey is occupied by the system or another application",
|
||
"hotkey.errors.UNKNOWN": "Update failed: Unknown error",
|
||
"hotkey.group.conversation": "Conversation",
|
||
"hotkey.group.desktop": "Desktop",
|
||
"hotkey.group.essential": "Essential",
|
||
"hotkey.invalidCombination": "The hotkey must include at least one modifier key (Ctrl, Alt, Shift) and one regular key",
|
||
"hotkey.record": "Press a key to record the hotkey",
|
||
"hotkey.reset": "Reset to default hotkeys",
|
||
"hotkey.title": "Hotkeys",
|
||
"hotkey.updateError": "Failed to update hotkey: Network or system error",
|
||
"hotkey.updateSuccess": "Hotkey updated successfully",
|
||
"llm.aesGcm": "Your keys and proxy address will be encrypted using the <1>AES-GCM</1> encryption algorithm",
|
||
"llm.apiKey.desc": "Please enter your {{name}} API Key",
|
||
"llm.apiKey.placeholder": "{{name}} API Key",
|
||
"llm.apiKey.title": "API Key",
|
||
"llm.checker.button": "Check",
|
||
"llm.checker.desc": "Test if the API Key and proxy address are filled in correctly",
|
||
"llm.checker.pass": "Check Passed",
|
||
"llm.checker.title": "Connectivity Check",
|
||
"llm.customModelCards.addNew": "Create and add {{id}} model",
|
||
"llm.customModelCards.config": "Model Configuration",
|
||
"llm.customModelCards.confirmDelete": "You are about to delete this custom model. Once deleted, it cannot be recovered. Please proceed with caution.",
|
||
"llm.customModelCards.modelConfig.azureDeployName.extra": "The field actually requested in Azure OpenAI",
|
||
"llm.customModelCards.modelConfig.azureDeployName.placeholder": "Enter the model deployment name in Azure",
|
||
"llm.customModelCards.modelConfig.azureDeployName.title": "Model Deployment Name",
|
||
"llm.customModelCards.modelConfig.displayName.placeholder": "Enter the display name of the model, such as ChatGPT, GPT-4, etc.",
|
||
"llm.customModelCards.modelConfig.displayName.title": "Model Display Name",
|
||
"llm.customModelCards.modelConfig.files.extra": "The current file upload implementation is merely a hack solution and is intended for personal experimentation only. Please wait for a complete file upload capability in future updates.",
|
||
"llm.customModelCards.modelConfig.files.title": "Support File Upload",
|
||
"llm.customModelCards.modelConfig.functionCall.extra": "This only enables Skill calling in the app. Whether the model actually supports Skill calling depends on the model itself—please test it.",
|
||
"llm.customModelCards.modelConfig.functionCall.title": "Supports Skill calling",
|
||
"llm.customModelCards.modelConfig.id.extra": "Will be displayed as the model label",
|
||
"llm.customModelCards.modelConfig.id.placeholder": "Enter the model ID, such as gpt-4-turbo-preview or claude-2.1",
|
||
"llm.customModelCards.modelConfig.id.title": "Model ID",
|
||
"llm.customModelCards.modelConfig.modalTitle": "Custom Model Configuration",
|
||
"llm.customModelCards.modelConfig.tokens.title": "Maximum Token Count",
|
||
"llm.customModelCards.modelConfig.vision.extra": "This only enables image upload in the app. Whether the model supports vision depends on the model itself—please test it.",
|
||
"llm.customModelCards.modelConfig.vision.title": "Supports vision",
|
||
"llm.fetchOnClient.desc": "Send requests directly from the browser to improve latency.",
|
||
"llm.fetchOnClient.title": "Use client request mode",
|
||
"llm.fetcher.clear": "Clear fetched model",
|
||
"llm.fetcher.fetch": "Get Model List",
|
||
"llm.fetcher.fetching": "Fetching Model List...",
|
||
"llm.fetcher.latestTime": "Last Updated: {{time}}",
|
||
"llm.fetcher.noLatestTime": "No list available yet",
|
||
"llm.helpDoc": "Configuration Guide",
|
||
"llm.modelList.desc": "Select the models to display in the session. The selected models will be displayed in the model list.",
|
||
"llm.modelList.placeholder": "Please select a model from the list",
|
||
"llm.modelList.title": "Model List",
|
||
"llm.modelList.total": "{{count}} models available in total",
|
||
"llm.proxyUrl.desc": "Must include http(s):// in addition to the default address",
|
||
"llm.proxyUrl.title": "API proxy URL",
|
||
"llm.waitingForMore": "More models are <1>planned to be added</1>, stay tuned",
|
||
"llm.waitingForMoreLinkAriaLabel": "Open the Provider request form",
|
||
"marketPublish.forkConfirm.by": "by {{author}}",
|
||
"marketPublish.forkConfirm.confirm": "Confirm Publish",
|
||
"marketPublish.forkConfirm.confirmGroup": "Confirm Publish",
|
||
"marketPublish.forkConfirm.description": "You are about to publish a derivative version based on an existing agent from the community. Your new agent will be created as a separate entry in the marketplace.",
|
||
"marketPublish.forkConfirm.descriptionGroup": "You are about to publish a derivative version based on an existing group from the community. Your new group will be created as a separate entry in the marketplace.",
|
||
"marketPublish.forkConfirm.title": "Publish Derivative Agent",
|
||
"marketPublish.forkConfirm.titleGroup": "Publish Derivative Group",
|
||
"marketPublish.modal.changelog.extra": "Describe the key changes and improvements in this version",
|
||
"marketPublish.modal.changelog.label": "Changelog",
|
||
"marketPublish.modal.changelog.maxLengthError": "Changelog must not exceed 500 characters",
|
||
"marketPublish.modal.changelog.placeholder": "Enter the changelog",
|
||
"marketPublish.modal.changelog.required": "Please enter the changelog",
|
||
"marketPublish.modal.comparison.local": "Current Local Version",
|
||
"marketPublish.modal.comparison.remote": "Currently Published Version",
|
||
"marketPublish.modal.identifier.extra": "This is the Agent’s unique identifier. Use lowercase letters, numbers, and hyphens.",
|
||
"marketPublish.modal.identifier.label": "Agent Identifier",
|
||
"marketPublish.modal.identifier.lengthError": "Identifier must be between 3 and 50 characters",
|
||
"marketPublish.modal.identifier.patternError": "Identifier can only contain lowercase letters, numbers, and hyphens",
|
||
"marketPublish.modal.identifier.placeholder": "Enter a unique identifier for the agent, e.g., web-development",
|
||
"marketPublish.modal.identifier.required": "Please enter the agent identifier",
|
||
"marketPublish.modal.loading.fetchingRemote": "Loading remote data...",
|
||
"marketPublish.modal.loading.submit": "Submitting Agent...",
|
||
"marketPublish.modal.loading.submitGroup": "Submitting Group...",
|
||
"marketPublish.modal.loading.upload": "Publishing new version...",
|
||
"marketPublish.modal.loading.uploadGroup": "Publishing new group version...",
|
||
"marketPublish.modal.messages.createVersionFailed": "Failed to create version: {{message}}",
|
||
"marketPublish.modal.messages.fetchRemoteFailed": "Failed to fetch remote agent data",
|
||
"marketPublish.modal.messages.missingIdentifier": "This Agent doesn’t have a Community identifier yet.",
|
||
"marketPublish.modal.messages.noGroup": "No group selected",
|
||
"marketPublish.modal.messages.notAuthenticated": "Sign in to your Community account first.",
|
||
"marketPublish.modal.messages.publishFailed": "Publish failed: {{message}}",
|
||
"marketPublish.modal.submitButton": "Publish",
|
||
"marketPublish.modal.title.submit": "Share to Agent Community",
|
||
"marketPublish.modal.title.upload": "Publish New Version",
|
||
"marketPublish.resultModal.message": "Your Agent has been submitted for review. Once approved, it will go live automatically.",
|
||
"marketPublish.resultModal.messageGroup": "Your Group has been submitted for review. Once approved, it will go live automatically.",
|
||
"marketPublish.resultModal.title": "Submission Successful",
|
||
"marketPublish.resultModal.view": "View in Community",
|
||
"marketPublish.status.underReview": "Under Review",
|
||
"marketPublish.submit.button": "Share to Community",
|
||
"marketPublish.submit.tooltip": "Share this Agent to the Community",
|
||
"marketPublish.submitGroup.tooltip": "Share this Group to the Community",
|
||
"marketPublish.upload.button": "Publish New Version",
|
||
"marketPublish.upload.tooltip": "Publish a new version to Agent Community",
|
||
"marketPublish.uploadGroup.tooltip": "Publish a new version to Group Community",
|
||
"marketPublish.validation.confirmPublish": "Are you sure you want to publish to the market?",
|
||
"marketPublish.validation.emptyName": "Cannot publish: Name is required",
|
||
"marketPublish.validation.emptySystemRole": "Cannot publish: System Role is required",
|
||
"marketPublish.validation.underReview": "Your new version is currently under review. Please wait for approval before publishing a new version.",
|
||
"memory.effort.desc": "Control how aggressively the AI retrieves and updates memory.",
|
||
"memory.effort.high": "High — Proactive retrieval and updates",
|
||
"memory.effort.level.high": "High",
|
||
"memory.effort.level.low": "Low",
|
||
"memory.effort.level.medium": "Medium",
|
||
"memory.effort.low": "Low — Minimal memory operations",
|
||
"memory.effort.medium": "Medium — Balanced behavior",
|
||
"memory.effort.title": "Aggressiveness",
|
||
"memory.enabled.desc": "Allow LobeHub to extract preferences and info from conversations and use them later. You can view, edit, or clear memory anytime.",
|
||
"memory.enabled.title": "Enable Memory",
|
||
"memory.title": "Memory Settings",
|
||
"message.success": "Update successful",
|
||
"myAgents.actions.cancel": "Cancel",
|
||
"myAgents.actions.confirmDeprecate": "Confirm Deprecate",
|
||
"myAgents.actions.deprecate": "Deprecate Permanently",
|
||
"myAgents.actions.deprecateConfirmContent": "After deprecation, this agent will be permanently removed from the market and cannot be republished. This action is irreversible, please proceed with caution.",
|
||
"myAgents.actions.deprecateConfirmTitle": "Confirm Deprecate Agent?",
|
||
"myAgents.actions.deprecateError": "Failed to deprecate agent",
|
||
"myAgents.actions.deprecateLoading": "Deprecating agent...",
|
||
"myAgents.actions.deprecateSuccess": "Agent deprecated",
|
||
"myAgents.actions.edit": "Edit Agent",
|
||
"myAgents.actions.publish": "Publish Agent",
|
||
"myAgents.actions.publishError": "Failed to publish agent",
|
||
"myAgents.actions.publishLoading": "Publishing agent...",
|
||
"myAgents.actions.publishSuccess": "Agent published",
|
||
"myAgents.actions.unpublish": "Unpublish Agent",
|
||
"myAgents.actions.unpublishError": "Failed to unpublish agent",
|
||
"myAgents.actions.unpublishLoading": "Unpublishing agent...",
|
||
"myAgents.actions.unpublishSuccess": "Agent unpublished",
|
||
"myAgents.actions.viewDetail": "View Details",
|
||
"myAgents.detail.category": "Category",
|
||
"myAgents.detail.description": "Description",
|
||
"myAgents.detail.identifier": "Identifier",
|
||
"myAgents.detail.title": "Agent Details",
|
||
"myAgents.empty.description": "You haven't published any agents to the market yet",
|
||
"myAgents.empty.title": "No Published Agents",
|
||
"myAgents.errors.editFailed": "Failed to edit agent, please try again later",
|
||
"myAgents.errors.fetchFailed": "Failed to fetch agent details",
|
||
"myAgents.errors.notAuthenticated": "Please sign in to your market account first",
|
||
"myAgents.loginRequired.button": "Sign in to Market",
|
||
"myAgents.loginRequired.description": "Please sign in to your market account to view your published agents",
|
||
"myAgents.loginRequired.title": "Sign In Required",
|
||
"myAgents.status.archived": "Archived",
|
||
"myAgents.status.deprecated": "Deprecated",
|
||
"myAgents.status.published": "Published",
|
||
"myAgents.status.unpublished": "Unpublished",
|
||
"myAgents.title": "My Published Agents",
|
||
"notification.email.desc": "Receive email notifications when important events occur",
|
||
"notification.email.title": "Email Notifications",
|
||
"notification.enabled": "Enabled",
|
||
"notification.inbox.desc": "Show notifications in the in-app inbox",
|
||
"notification.inbox.title": "Inbox Notifications",
|
||
"notification.title": "Notification Channels",
|
||
"plugin.addMCPPlugin": "Add MCP",
|
||
"plugin.addTooltip": "Custom Skills",
|
||
"plugin.clearDeprecated": "Remove Deprecated Skills",
|
||
"plugin.empty": "No Skills installed yet. Explore the <1>Skill Store</1> to get started.",
|
||
"plugin.installStatus.deprecated": "Uninstalled",
|
||
"plugin.settings.hint": "Please fill in the following configurations based on the description",
|
||
"plugin.settings.title": "{{id}} Skill Configuration",
|
||
"plugin.settings.tooltip": "Skill Configuration",
|
||
"plugin.store": "Skill Store",
|
||
"publishToCommunity": "Publish to Community",
|
||
"settingAgent.avatar.sizeExceeded": "Image size exceeds 1MB limit, please choose a smaller image",
|
||
"settingAgent.avatar.title": "Avatar",
|
||
"settingAgent.backgroundColor.title": "Background Color",
|
||
"settingAgent.description.desc": "A brief introduction to your agent, not for character setting",
|
||
"settingAgent.description.placeholder": "Enter agent description",
|
||
"settingAgent.description.title": "Agent Description",
|
||
"settingAgent.name.placeholder": "Enter agent name",
|
||
"settingAgent.name.title": "Name",
|
||
"settingAgent.prompt.placeholder": "Enter agent settings, press / to open the command menu",
|
||
"settingAgent.prompt.templatePlaceholder": "#### Goal\nDescribe the main purpose and objective of this agent.\n\n#### Skills\n- List the key capabilities\n- And specialized knowledge areas\n\n#### Workflow\n1. Step-by-step process\n2. How the agent should approach tasks\n3. Expected interactions with users\n\n#### Constraints\n- Important limitations to follow\n- Guidelines for behavior",
|
||
"settingAgent.prompt.title": "Agent Profile",
|
||
"settingAgent.submit": "Update Agent",
|
||
"settingAgent.tag.desc": "Agent tags will be displayed in the Agent Community",
|
||
"settingAgent.tag.placeholder": "Enter tag",
|
||
"settingAgent.tag.title": "Tag",
|
||
"settingAgent.title": "Agent info",
|
||
"settingAppearance.animationMode.agile": "Agile",
|
||
"settingAppearance.animationMode.desc": "Select the animation speed for application response actions",
|
||
"settingAppearance.animationMode.disabled": "Off",
|
||
"settingAppearance.animationMode.elegant": "Elegant",
|
||
"settingAppearance.animationMode.title": "Response Animation",
|
||
"settingAppearance.contextMenuMode.default": "Default",
|
||
"settingAppearance.contextMenuMode.desc": "Enable the right-click menu for some list items.",
|
||
"settingAppearance.contextMenuMode.disabled": "Disabled",
|
||
"settingAppearance.contextMenuMode.title": "Right-Click Menu Mode",
|
||
"settingAppearance.neutralColor.desc": "Custom grayscale with different color tendencies",
|
||
"settingAppearance.neutralColor.title": "Neutral Color",
|
||
"settingAppearance.noAnimation.desc": "Disable all animation effects in the application",
|
||
"settingAppearance.noAnimation.title": "No Animation Mode",
|
||
"settingAppearance.preview.title": "Color Palette",
|
||
"settingAppearance.primaryColor.desc": "Custom theme color",
|
||
"settingAppearance.primaryColor.title": "Theme Color",
|
||
"settingAppearance.title": "Application Appearance",
|
||
"settingChat.autoCreateTopicThreshold.desc": "Automatically create a topic when the current message count exceeds this value",
|
||
"settingChat.autoCreateTopicThreshold.title": "Message Threshold",
|
||
"settingChat.chatStyleType.title": "Chat Window Style",
|
||
"settingChat.chatStyleType.type.chat": "Conversation Mode",
|
||
"settingChat.chatStyleType.type.docs": "Page Mode",
|
||
"settingChat.compressThreshold.desc": "When the uncompressed history messages exceed this value, compression will be applied",
|
||
"settingChat.compressThreshold.title": "History Message Length Compression Threshold",
|
||
"settingChat.enableAutoCreateTopic.desc": "Whether to automatically create a topic during the conversation, only effective in temporary topics",
|
||
"settingChat.enableAutoCreateTopic.title": "Auto Create Topic",
|
||
"settingChat.enableAutoScrollOnStreaming.desc": "Override global setting for this assistant",
|
||
"settingChat.enableAutoScrollOnStreaming.title": "Auto-scroll During AI Response",
|
||
"settingChat.enableCompressHistory.title": "Enable Automatic Summary of Chat History",
|
||
"settingChat.enableHistoryCount.alias": "Unlimited",
|
||
"settingChat.enableHistoryCount.limited": "Include only {{number}} conversation messages",
|
||
"settingChat.enableHistoryCount.setlimited": "Set limited history messages",
|
||
"settingChat.enableHistoryCount.title": "Limit History Message Count",
|
||
"settingChat.enableHistoryCount.unlimited": "Unlimited history message count",
|
||
"settingChat.enableStreaming.desc": "Enable streaming output to display responses in real-time. When disabled, only the complete response is shown.",
|
||
"settingChat.enableStreaming.title": "Enable Streaming Output",
|
||
"settingChat.historyCount.desc": "Number of historical messages carried with each request",
|
||
"settingChat.historyCount.title": "Attached History Message Count",
|
||
"settingChat.inputTemplate.desc": "The user's latest message will be filled into this template",
|
||
"settingChat.inputTemplate.placeholder": "Preprocessing template {{text}} will be replaced with real-time input information",
|
||
"settingChat.inputTemplate.title": "User Input Preprocessing",
|
||
"settingChat.submit": "Update Chat Preferences",
|
||
"settingChat.title": "Chat Settings",
|
||
"settingChatAppearance.autoScrollOnStreaming.desc": "Automatically scroll to bottom when AI is generating response",
|
||
"settingChatAppearance.autoScrollOnStreaming.title": "Auto-scroll During AI Response",
|
||
"settingChatAppearance.fontSize.desc": "Font size of messages",
|
||
"settingChatAppearance.fontSize.marks.normal": "Standard",
|
||
"settingChatAppearance.fontSize.title": "Font Size",
|
||
"settingChatAppearance.highlighterTheme.title": "Code Highlight Theme",
|
||
"settingChatAppearance.mermaidTheme.title": "Mermaid Theme",
|
||
"settingChatAppearance.title": "Chat Appearance",
|
||
"settingChatAppearance.transitionMode.desc": "Choose how chat messages appear",
|
||
"settingChatAppearance.transitionMode.options.fadeIn": "Fade In",
|
||
"settingChatAppearance.transitionMode.options.none.desc": "This depends on the model's response output method; please test it yourself.",
|
||
"settingChatAppearance.transitionMode.options.none.value": "None",
|
||
"settingChatAppearance.transitionMode.options.smooth": "Smooth",
|
||
"settingChatAppearance.transitionMode.title": "Transition Animation",
|
||
"settingCommon.devMode.desc": "Enable to show developer-related features and options",
|
||
"settingCommon.devMode.title": "Developer Mode",
|
||
"settingCommon.lang.autoMode": "Follow System",
|
||
"settingCommon.lang.title": "Language",
|
||
"settingCommon.liteMode.desc": "Simplify the interface and hide advanced features",
|
||
"settingCommon.liteMode.title": "Lite Mode",
|
||
"settingCommon.responseLanguage.auto": "Follow System",
|
||
"settingCommon.responseLanguage.desc": "Choose the Agent’s reply language",
|
||
"settingCommon.responseLanguage.placeholder": "Select response language",
|
||
"settingCommon.responseLanguage.title": "Response Language",
|
||
"settingCommon.themeMode.auto": "Automatic",
|
||
"settingCommon.themeMode.dark": "Dark",
|
||
"settingCommon.themeMode.light": "Light",
|
||
"settingCommon.themeMode.title": "Theme",
|
||
"settingCommon.title": "General Settings",
|
||
"settingGroup.description.placeholder": "Enter Group description",
|
||
"settingGroup.description.title": "Group description",
|
||
"settingGroup.name.placeholder": "Enter Group name",
|
||
"settingGroup.name.title": "Group name",
|
||
"settingGroup.scene.desc": "Select Group scenario",
|
||
"settingGroup.scene.options.casual": "Casual",
|
||
"settingGroup.scene.options.productive": "Productive",
|
||
"settingGroup.scene.title": "Group scenario",
|
||
"settingGroup.submit": "Update Group",
|
||
"settingGroup.systemPrompt.placeholder": "Please enter the host system prompt",
|
||
"settingGroup.systemPrompt.title": "Host System Prompt",
|
||
"settingGroup.title": "Group Information",
|
||
"settingGroupChat.allowDM.desc": "When turned off, you can still send direct messages to the agent",
|
||
"settingGroupChat.allowDM.title": "Allow Direct Messages from Agent",
|
||
"settingGroupChat.enableSupervisor.desc": "Enable the moderator feature to manage Group conversations",
|
||
"settingGroupChat.enableSupervisor.title": "Enable Orchestrator",
|
||
"settingGroupChat.maxResponseInRow.desc": "Select how many consecutive messages a member can reply with. Set to 0 to disable this limit.",
|
||
"settingGroupChat.maxResponseInRow.title": "Consecutive Reply Count",
|
||
"settingGroupChat.model.desc": "Group members aren’t affected. Some models can’t be used as the Orchestrator model.",
|
||
"settingGroupChat.model.title": "Orchestrator model",
|
||
"settingGroupChat.orchestratorTitle": "Orchestrator",
|
||
"settingGroupChat.responseOrder.desc": "Agents reply based on their order in the chat",
|
||
"settingGroupChat.responseOrder.options.natural": "Natural",
|
||
"settingGroupChat.responseOrder.options.sequential": "Sequential",
|
||
"settingGroupChat.responseOrder.placeholder": "Select reply order",
|
||
"settingGroupChat.responseOrder.title": "Reply Order",
|
||
"settingGroupChat.responseSpeed.desc": "Control the overall pace of the conversation",
|
||
"settingGroupChat.responseSpeed.options.fast": "Fast",
|
||
"settingGroupChat.responseSpeed.options.medium": "Medium",
|
||
"settingGroupChat.responseSpeed.options.slow": "Slow",
|
||
"settingGroupChat.responseSpeed.placeholder": "Select reply speed",
|
||
"settingGroupChat.responseSpeed.title": "Reply Speed",
|
||
"settingGroupChat.revealDM.desc": "Make private messages sent to other members visible to you.",
|
||
"settingGroupChat.revealDM.title": "Show Private Messages",
|
||
"settingGroupChat.submit": "Update Settings",
|
||
"settingGroupChat.systemPrompt.desc": "Custom system prompt for the group chat host. This may affect the default host behavior.",
|
||
"settingGroupChat.systemPrompt.placeholder": "Please enter a custom host system prompt...",
|
||
"settingGroupChat.systemPrompt.title": "Host System Prompt",
|
||
"settingGroupChat.title": "Chat Settings",
|
||
"settingGroupMembers.addToGroup": "Add to Group",
|
||
"settingGroupMembers.availableAgents": "Available Agents",
|
||
"settingGroupMembers.createMember": "Create Member",
|
||
"settingGroupMembers.defaultAgent": "Custom Agent",
|
||
"settingGroupMembers.disableHost": "Disable Orchestrator",
|
||
"settingGroupMembers.edit": "Edit Member",
|
||
"settingGroupMembers.empty": "This Group has no members yet. Click + to add members.",
|
||
"settingGroupMembers.enableHost": "Enable Orchestrator",
|
||
"settingGroupMembers.groupHost": "Orchestrator",
|
||
"settingGroupMembers.groupMembers": "Group Members",
|
||
"settingGroupMembers.host.description": "With an Orchestrator, the Group can run more automatically—great for open-ended tasks.",
|
||
"settingGroupMembers.host.title": "Orchestrator",
|
||
"settingGroupMembers.noAvailableAgents": "No available agents",
|
||
"settingGroupMembers.noDescription": "No description",
|
||
"settingGroupMembers.noMembersInGroup": "No members in the group",
|
||
"settingGroupMembers.owner": "You (Owner)",
|
||
"settingGroupMembers.remove": "Remove Member",
|
||
"settingGroupMembers.removeFromGroup": "Remove from Group",
|
||
"settingGroupMembers.you": "You",
|
||
"settingImage.defaultCount.desc": "Set the default number of images generated when creating a new task in the image generation panel.",
|
||
"settingImage.defaultCount.label": "Default Image Count",
|
||
"settingImage.defaultCount.title": "AI Image",
|
||
"settingModel.enableContextCompression.desc": "Automatically compress historical messages into summaries when conversation exceeds 64,000 tokens, saving 60-80% token usage",
|
||
"settingModel.enableContextCompression.title": "Enable Auto Context Compression",
|
||
"settingModel.enableMaxTokens.title": "Enable Max Tokens Limit",
|
||
"settingModel.enableReasoningEffort.title": "Enable Reasoning Effort Adjustment",
|
||
"settingModel.frequencyPenalty.desc": "The higher the value, the more diverse and rich the vocabulary; the lower the value, the simpler and more straightforward the language.",
|
||
"settingModel.frequencyPenalty.title": "Vocabulary Richness",
|
||
"settingModel.maxTokens.desc": "The maximum number of tokens used for each interaction",
|
||
"settingModel.maxTokens.title": "Max Tokens Limit",
|
||
"settingModel.model.desc": "{{provider}} model",
|
||
"settingModel.model.title": "Model",
|
||
"settingModel.params.title": "Advanced Parameters",
|
||
"settingModel.presencePenalty.desc": "The higher the value, the more inclined to use different expressions and avoid concept repetition; the lower the value, the more inclined to use repeated concepts or narratives, resulting in more consistent expression.",
|
||
"settingModel.presencePenalty.title": "Expression Divergence",
|
||
"settingModel.reasoningEffort.desc": "Higher values enhance reasoning ability but may increase response time and token usage.",
|
||
"settingModel.reasoningEffort.options.high": "High",
|
||
"settingModel.reasoningEffort.options.low": "Low",
|
||
"settingModel.reasoningEffort.options.medium": "Medium",
|
||
"settingModel.reasoningEffort.title": "Reasoning Effort",
|
||
"settingModel.submit": "Update Model Settings",
|
||
"settingModel.temperature.desc": "The higher the value, the more creative and imaginative the responses; the lower the value, the more rigorous the responses.",
|
||
"settingModel.temperature.title": "Creativity Level",
|
||
"settingModel.temperature.warning": "If the creativity level is set too high, the output may become garbled.",
|
||
"settingModel.title": "Model Settings",
|
||
"settingModel.topP.desc": "How many possibilities to consider; a higher value accepts more potential answers, while a lower value tends to choose the most likely answer. It is not recommended to change this alongside the creativity level.",
|
||
"settingModel.topP.title": "Openness to Ideas",
|
||
"settingOpening.openingMessage.desc": "The opening message displayed when the conversation starts, used to introduce the agent's features",
|
||
"settingOpening.openingMessage.placeholder": "Hello, I am your Custom Agent. You can start chatting with me right away, or go to Agent Settings to complete my information.",
|
||
"settingOpening.openingMessage.title": "Opening Message",
|
||
"settingOpening.openingQuestions.desc": "Guiding questions displayed at the beginning of the conversation",
|
||
"settingOpening.openingQuestions.empty": "Add opening questions to help users start the conversation quickly",
|
||
"settingOpening.openingQuestions.placeholder": "Please enter a question",
|
||
"settingOpening.openingQuestions.repeat": "Question already exists",
|
||
"settingOpening.openingQuestions.title": "Opening Questions",
|
||
"settingOpening.title": "Opening Settings",
|
||
"settingPlugin.title": "Skill List",
|
||
"settingSystem.oauth.info.desc": "Logged in",
|
||
"settingSystem.oauth.info.title": "Account Information",
|
||
"settingSystem.oauth.signin.action": "Sign In",
|
||
"settingSystem.oauth.signin.desc": "Sign in using SSO to unlock the app",
|
||
"settingSystem.oauth.signin.title": "Sign In to Your Account",
|
||
"settingSystem.oauth.signout.action": "Sign Out",
|
||
"settingSystem.oauth.signout.confirm": "Confirm sign out?",
|
||
"settingSystem.oauth.signout.success": "Sign out successful",
|
||
"settingSystem.title": "System Settings",
|
||
"settingSystemTools.appEnvironment.chromium.desc": "Chromium browser engine version",
|
||
"settingSystemTools.appEnvironment.desc": "Built-in runtime versions in the desktop app",
|
||
"settingSystemTools.appEnvironment.electron.desc": "Electron framework version",
|
||
"settingSystemTools.appEnvironment.node.desc": "Embedded Node.js version",
|
||
"settingSystemTools.appEnvironment.title": "Built-in App Tools",
|
||
"settingSystemTools.category.browserAutomation": "Browser Automation",
|
||
"settingSystemTools.category.browserAutomation.desc": "Tools for headless browser automation and web interaction",
|
||
"settingSystemTools.category.cliAgents": "CLI Agents",
|
||
"settingSystemTools.category.cliAgents.desc": "Agentic coding CLIs detected on your system, such as Claude Code, Codex, and Kimi",
|
||
"settingSystemTools.category.contentSearch": "Content Search",
|
||
"settingSystemTools.category.contentSearch.desc": "Tools for searching text content within files",
|
||
"settingSystemTools.category.fileSearch": "File Search",
|
||
"settingSystemTools.category.fileSearch.desc": "Tools for finding files by name or pattern",
|
||
"settingSystemTools.category.runtimeEnvironment": "Runtime Environment",
|
||
"settingSystemTools.category.runtimeEnvironment.desc": "Development runtime environments for executing scripts and packages",
|
||
"settingSystemTools.detecting": "Detecting...",
|
||
"settingSystemTools.redetect": "Re-detect",
|
||
"settingSystemTools.status.available": "Available",
|
||
"settingSystemTools.status.notDetected": "Not detected",
|
||
"settingSystemTools.status.unavailable": "Unavailable",
|
||
"settingSystemTools.title": "System Tools",
|
||
"settingSystemTools.tools.ag.desc": "The Silver Searcher - fast code searching tool",
|
||
"settingSystemTools.tools.agentBrowser.desc": "Agent-browser - headless browser automation CLI for AI agents",
|
||
"settingSystemTools.tools.aider.desc": "Aider - AI pair programming in your terminal",
|
||
"settingSystemTools.tools.bun.desc": "Bun - fast JavaScript runtime and package manager",
|
||
"settingSystemTools.tools.bunx.desc": "bunx - Bun package runner for executing npm packages",
|
||
"settingSystemTools.tools.claude.desc": "Claude Code - Anthropic official agentic coding CLI",
|
||
"settingSystemTools.tools.codex.desc": "Codex - OpenAI agentic coding CLI",
|
||
"settingSystemTools.tools.fd.desc": "fd - fast and user-friendly alternative to find",
|
||
"settingSystemTools.tools.find.desc": "Unix find - standard file search command",
|
||
"settingSystemTools.tools.gemini.desc": "Gemini CLI - Google agentic coding CLI",
|
||
"settingSystemTools.tools.grep.desc": "GNU grep - standard text search tool",
|
||
"settingSystemTools.tools.kimi.desc": "Kimi CLI - Moonshot AI agentic coding CLI",
|
||
"settingSystemTools.tools.lobehub.desc": "LobeHub CLI - manage and connect to LobeHub services",
|
||
"settingSystemTools.tools.mdfind.desc": "macOS Spotlight search (fast indexed search)",
|
||
"settingSystemTools.tools.node.desc": "Node.js - JavaScript runtime for executing JS/TS",
|
||
"settingSystemTools.tools.npm.desc": "npm - Node.js package manager for installing dependencies",
|
||
"settingSystemTools.tools.pnpm.desc": "pnpm - fast, disk space efficient package manager",
|
||
"settingSystemTools.tools.python.desc": "Python - programming language runtime",
|
||
"settingSystemTools.tools.qwen.desc": "Qwen Code - Alibaba Qwen agentic coding CLI",
|
||
"settingSystemTools.tools.rg.desc": "ripgrep - extremely fast text search tool",
|
||
"settingSystemTools.tools.uv.desc": "uv - extremely fast Python package manager",
|
||
"settingTTS.openai.sttModel": "OpenAI Speech-to-Text Model",
|
||
"settingTTS.openai.title": "OpenAI",
|
||
"settingTTS.openai.ttsModel": "OpenAI Text-to-Speech Model",
|
||
"settingTTS.showAllLocaleVoice.desc": "If closed, only voices in the current language will be displayed",
|
||
"settingTTS.showAllLocaleVoice.title": "Show All Locale Voices",
|
||
"settingTTS.stt": "Speech Recognition Settings",
|
||
"settingTTS.sttAutoStop.desc": "When closed, speech recognition will not end automatically and requires manual click to stop",
|
||
"settingTTS.sttAutoStop.title": "Auto Stop Speech Recognition",
|
||
"settingTTS.sttLocale.desc": "The language of the speech input, this option can improve the accuracy of speech recognition",
|
||
"settingTTS.sttLocale.title": "Speech Recognition Language",
|
||
"settingTTS.sttService.desc": "Where 'browser' is the native speech recognition service of the browser",
|
||
"settingTTS.sttService.title": "Speech Recognition Service",
|
||
"settingTTS.submit": "Update Voice Service",
|
||
"settingTTS.title": "Speech Service",
|
||
"settingTTS.tts": "Text-to-Speech Settings",
|
||
"settingTTS.ttsService.desc": "If using OpenAI text-to-speech service, make sure the OpenAI model service is enabled",
|
||
"settingTTS.ttsService.title": "Text-to-Speech Service",
|
||
"settingTTS.voice.desc": "Select a voice for the current agent, different TTS services support different voices",
|
||
"settingTTS.voice.preview": "Voice Preview",
|
||
"settingTTS.voice.title": "Text-to-Speech Voice",
|
||
"skillStore.button": "Skill Store",
|
||
"skillStore.empty": "Browse the Skill store. Install one to get started, add more later.",
|
||
"skillStore.emptySearch": "No matching Skills",
|
||
"skillStore.networkError": "Network error, please try again",
|
||
"skillStore.search": "Search skills by name or keyword, press Enter to search…",
|
||
"skillStore.tabs.community": "Community",
|
||
"skillStore.tabs.custom": "Custom",
|
||
"skillStore.tabs.lobehub": "LobeHub",
|
||
"skillStore.tabs.mcp": "MCP",
|
||
"skillStore.tabs.skills": "Skills",
|
||
"skillStore.title": "Skill Store",
|
||
"skillStore.wantMore.action": "Submit a request →",
|
||
"skillStore.wantMore.feedback.message": "## Skill Name\n[Please fill in]\n\n## Use Case\nWhen I am ___, I need ___\n\n## Expected Features\n1.\n2.\n3.\n\n## Reference Examples\n(Optional) Are there any similar tools or features for reference?\n\n---\n💡 Tip: The more specific your description, the better we can meet your needs",
|
||
"skillStore.wantMore.feedback.title": "[Skill Request] Summarize the skill you need in one sentence",
|
||
"skillStore.wantMore.reachedEnd": "You've reached the end. Can't find what you need?",
|
||
"startConversation": "Start Conversation",
|
||
"storage.actions.export.button": "Export",
|
||
"storage.actions.export.exportType.agent": "Export Agent Settings",
|
||
"storage.actions.export.exportType.agentWithMessage": "Export Agent and Messages",
|
||
"storage.actions.export.exportType.all": "Export Global Settings and All Agent Data",
|
||
"storage.actions.export.exportType.allAgent": "Export All Agent Settings",
|
||
"storage.actions.export.exportType.allAgentWithMessage": "Export All Agents and Messages",
|
||
"storage.actions.export.exportType.globalSetting": "Export Global Settings",
|
||
"storage.actions.export.title": "Export Data",
|
||
"storage.actions.import.button": "Import",
|
||
"storage.actions.import.title": "Import Data",
|
||
"storage.actions.title": "Advanced Operations",
|
||
"storage.desc": "Current storage usage in the browser",
|
||
"storage.embeddings.used": "Vector Storage",
|
||
"storage.title": "Data Storage",
|
||
"storage.used": "Storage Usage",
|
||
"submitAgentModal.button": "Submit Agent",
|
||
"submitAgentModal.identifier": "Agent Identifier",
|
||
"submitAgentModal.metaMiss": "Please complete the agent information before submitting. It should include name, description, and tags",
|
||
"submitAgentModal.placeholder": "Enter a unique identifier for the agent, e.g. web-development",
|
||
"submitAgentModal.success": "Agent submitted successfully",
|
||
"submitAgentModal.tooltips": "Share to Agent Community",
|
||
"submitGroupModal.tooltips": "Share to Group Community",
|
||
"sync.device.deviceName.hint": "Add a name for easy identification",
|
||
"sync.device.deviceName.placeholder": "Enter device name",
|
||
"sync.device.deviceName.title": "Device Name",
|
||
"sync.device.title": "Device Information",
|
||
"sync.device.unknownBrowser": "Unknown Browser",
|
||
"sync.device.unknownOS": "Unknown OS",
|
||
"sync.warning.tip": "After a long period of community testing, WebRTC synchronization may not reliably meet general data synchronization needs. Please <1>deploy a signaling server</1> before use.",
|
||
"sync.webrtc.channelName.desc": "WebRTC will use this name to create a sync channel. Ensure the channel name is unique.",
|
||
"sync.webrtc.channelName.placeholder": "Enter sync channel name",
|
||
"sync.webrtc.channelName.shuffle": "Generate Randomly",
|
||
"sync.webrtc.channelName.title": "Sync Channel Name",
|
||
"sync.webrtc.channelPassword.desc": "Add a password to ensure channel privacy. Only devices with the correct password can join the channel.",
|
||
"sync.webrtc.channelPassword.placeholder": "Enter sync channel password",
|
||
"sync.webrtc.channelPassword.title": "Sync Channel Password",
|
||
"sync.webrtc.desc": "Real-time, peer-to-peer data communication requires all devices to be online for synchronization.",
|
||
"sync.webrtc.enabled.invalid": "Please fill in the signaling server and synchronization channel name before enabling.",
|
||
"sync.webrtc.enabled.title": "Enable Sync",
|
||
"sync.webrtc.signaling.desc": "WebRTC will use this address for synchronization",
|
||
"sync.webrtc.signaling.placeholder": "Enter signaling server address",
|
||
"sync.webrtc.signaling.title": "Signaling Server",
|
||
"sync.webrtc.title": "WebRTC Sync",
|
||
"systemAgent.agentMeta.label": "Model",
|
||
"systemAgent.agentMeta.modelDesc": "Model designated for generating agent name, description, avatar, and tags",
|
||
"systemAgent.agentMeta.title": "Agent Info Generation Helper",
|
||
"systemAgent.customPrompt.addPrompt": "Add Custom Prompt",
|
||
"systemAgent.customPrompt.desc": "Once filled out, the system agent will use the custom prompt when generating content",
|
||
"systemAgent.customPrompt.placeholder": "Please enter custom prompt",
|
||
"systemAgent.customPrompt.title": "Custom Prompt",
|
||
"systemAgent.generationTopic.label": "Model",
|
||
"systemAgent.generationTopic.modelDesc": "Model designated for automatic naming of AI image topics",
|
||
"systemAgent.generationTopic.title": "AI Image Topic Naming Agent",
|
||
"systemAgent.helpInfo": "When creating a new agent, the default agent settings will be used as preset values.",
|
||
"systemAgent.historyCompress.label": "Model",
|
||
"systemAgent.historyCompress.modelDesc": "Specify the model used to compress conversation history",
|
||
"systemAgent.historyCompress.title": "Conversation History Compression Agent",
|
||
"systemAgent.inputCompletion.label": "Model",
|
||
"systemAgent.inputCompletion.modelDesc": "Model used for input auto-completion suggestions (like GitHub Copilot ghost text)",
|
||
"systemAgent.inputCompletion.title": "Input Auto-Completion Agent",
|
||
"systemAgent.promptRewrite.label": "Model",
|
||
"systemAgent.promptRewrite.modelDesc": "Specify the model used to rewrite prompts",
|
||
"systemAgent.promptRewrite.title": "Prompt Rewrite Agent",
|
||
"systemAgent.queryRewrite.label": "Model",
|
||
"systemAgent.queryRewrite.modelDesc": "Specify the model used to optimize user inquiries",
|
||
"systemAgent.queryRewrite.title": "Library query rewrite Agent",
|
||
"systemAgent.thread.label": "Model",
|
||
"systemAgent.thread.modelDesc": "The model designated for automatic renaming of subtopics",
|
||
"systemAgent.thread.title": "Subtopic Auto-Naming Agent",
|
||
"systemAgent.title": "System Agents",
|
||
"systemAgent.topic.label": "Model",
|
||
"systemAgent.topic.modelDesc": "Model designated for automatic topic renaming",
|
||
"systemAgent.topic.title": "Topic Auto-Naming Agent",
|
||
"systemAgent.translation.label": "Model",
|
||
"systemAgent.translation.modelDesc": "Specify the model used for translation",
|
||
"systemAgent.translation.title": "Message Translation Agent",
|
||
"tab.about": "About",
|
||
"tab.addAgentSkill": "Add Agent Skill",
|
||
"tab.addCustomMcp": "Add Custom MCP Skill",
|
||
"tab.addCustomMcp.desc": "Manually configure a custom MCP server",
|
||
"tab.addCustomSkill": "Add",
|
||
"tab.advanced": "Advanced",
|
||
"tab.advanced.updateChannel.canary": "Canary",
|
||
"tab.advanced.updateChannel.canaryDesc": "Triggered on every PR merge, multiple builds per day. Most unstable.",
|
||
"tab.advanced.updateChannel.desc": "By default, get notifications for stable updates. The Canary channel receives pre-release builds that may be unstable for production work.",
|
||
"tab.advanced.updateChannel.nightly": "Nightly",
|
||
"tab.advanced.updateChannel.nightlyDesc": "Automated daily builds with the latest changes.",
|
||
"tab.advanced.updateChannel.stable": "Stable",
|
||
"tab.advanced.updateChannel.stableDesc": "Production-ready releases.",
|
||
"tab.advanced.updateChannel.title": "Update Channel",
|
||
"tab.agent": "Agent",
|
||
"tab.all": "All",
|
||
"tab.apikey": "API Keys",
|
||
"tab.appearance": "Appearance",
|
||
"tab.chatAppearance": "Chat Appearance",
|
||
"tab.common": "Appearance",
|
||
"tab.creds": "Credentials",
|
||
"tab.experiment": "Experiment",
|
||
"tab.hotkey": "Hotkeys",
|
||
"tab.image": "Image Generation",
|
||
"tab.importFromGithub": "Import from GitHub",
|
||
"tab.importFromGithub.desc": "Import from a public GitHub repository",
|
||
"tab.importFromUrl": "Import from URL",
|
||
"tab.importFromUrl.desc": "Import via a direct link to SKILL.md",
|
||
"tab.llm": "Language Model",
|
||
"tab.manualFill": "Manually Fill In",
|
||
"tab.manualFill.desc": "Configure a custom MCP skill manually",
|
||
"tab.memory": "Memory",
|
||
"tab.notification": "Notifications",
|
||
"tab.profile": "My Account",
|
||
"tab.provider": "Provider",
|
||
"tab.proxy": "Proxy",
|
||
"tab.security": "Security",
|
||
"tab.serviceModel": "Service Model",
|
||
"tab.skill": "Skills",
|
||
"tab.skillDesc": "Manage your connected skills and integrations",
|
||
"tab.skillDetail": "Skill Details",
|
||
"tab.skillEmpty": "No skills connected yet",
|
||
"tab.skillInstalled": "Installed Skills",
|
||
"tab.skillIntegration": "Integration",
|
||
"tab.stats": "Analytics",
|
||
"tab.storage": "Storage",
|
||
"tab.sync": "Cloud Sync",
|
||
"tab.systemTools": "System Tools",
|
||
"tab.tts": "Text-to-Speech",
|
||
"tab.uploadZip": "Upload Zip",
|
||
"tab.uploadZip.desc": "Upload a local .zip or .skill file",
|
||
"tab.usage": "Usage",
|
||
"tools.add": "Add Skill",
|
||
"tools.builtins.find-skills.description": "Helps users discover and install agent skills when they ask \"how do I do X\", \"find a skill for X\", or want to extend capabilities",
|
||
"tools.builtins.find-skills.title": "Find Skills",
|
||
"tools.builtins.groupName": "Built-ins",
|
||
"tools.builtins.install": "Install",
|
||
"tools.builtins.installed": "Installed",
|
||
"tools.builtins.lobe-activator.description": "Discover and activate tools and skills",
|
||
"tools.builtins.lobe-activator.title": "Tools & Skills Activator",
|
||
"tools.builtins.lobe-agent-browser.description": "Browser automation CLI for AI agents. Use when tasks involve website or Electron interaction such as navigation, form filling, clicking, screenshot capture, scraping data, login flows, and end-to-end app testing.",
|
||
"tools.builtins.lobe-agent-browser.title": "Agent Browser",
|
||
"tools.builtins.lobe-agent-builder.description": "Configure agent metadata, model settings, plugins, and the system prompt",
|
||
"tools.builtins.lobe-agent-builder.title": "Agent Builder",
|
||
"tools.builtins.lobe-agent-documents.description": "Manage agent-scoped documents (list, create, read, edit, remove, rename) and load rules",
|
||
"tools.builtins.lobe-agent-documents.title": "Documents",
|
||
"tools.builtins.lobe-agent-management.description": "Create, manage, and orchestrate AI agents",
|
||
"tools.builtins.lobe-agent-management.title": "Agent Management",
|
||
"tools.builtins.lobe-artifacts.description": "Generate and preview interactive UI components and visualizations",
|
||
"tools.builtins.lobe-artifacts.readme": "Generate and live-preview interactive UI components, data visualizations, charts, SVG graphics, and web applications. Create rich visual content that users can interact with directly.",
|
||
"tools.builtins.lobe-artifacts.title": "Artifacts",
|
||
"tools.builtins.lobe-brief.description": "Report progress, deliver results, and request user decisions",
|
||
"tools.builtins.lobe-brief.title": "Brief Tools",
|
||
"tools.builtins.lobe-calculator.description": "Perform mathematical calculations, solve equations, and work with symbolic expressions",
|
||
"tools.builtins.lobe-calculator.readme": "Advanced mathematical calculator supporting basic arithmetic, algebraic equations, calculus operations, and symbolic math. Includes base conversion, equation solving, differentiation, integration, and more.",
|
||
"tools.builtins.lobe-calculator.title": "Calculator",
|
||
"tools.builtins.lobe-cloud-sandbox.description": "Execute code, run commands, and manage files in a secure cloud environment",
|
||
"tools.builtins.lobe-cloud-sandbox.readme": "Execute Python, JavaScript, and TypeScript code in an isolated cloud environment. Run shell commands, manage files, search content with regex, and export results securely.",
|
||
"tools.builtins.lobe-cloud-sandbox.title": "Cloud Sandbox",
|
||
"tools.builtins.lobe-creds.description": "Manage user credentials for authentication, environment variable injection, and API verification — handle API keys, OAuth tokens, and secrets for third-party integrations.",
|
||
"tools.builtins.lobe-creds.title": "Credentials",
|
||
"tools.builtins.lobe-cron.description": "Manage scheduled tasks that run automatically at specified times. Create, update, enable/disable, and monitor recurring tasks for your agents.",
|
||
"tools.builtins.lobe-cron.title": "Scheduled Tasks",
|
||
"tools.builtins.lobe-group-agent-builder.description": "Configure group metadata, members, and shared content for multi-agent groups",
|
||
"tools.builtins.lobe-group-agent-builder.title": "Group Agent Builder",
|
||
"tools.builtins.lobe-group-management.description": "Orchestrate and manage multi-agent group conversations",
|
||
"tools.builtins.lobe-group-management.title": "Group Management",
|
||
"tools.builtins.lobe-gtd.description": "Plan goals and track progress with GTD methodology",
|
||
"tools.builtins.lobe-gtd.readme": "Plan goals and track progress using GTD methodology. Create strategic plans, manage todo lists with status tracking, and execute long-running async tasks.",
|
||
"tools.builtins.lobe-gtd.title": "GTD Tools",
|
||
"tools.builtins.lobe-knowledge-base.description": "Search uploaded documents and domain knowledge via semantic vector search — for persistent, reusable reference",
|
||
"tools.builtins.lobe-knowledge-base.title": "Knowledge Base",
|
||
"tools.builtins.lobe-local-system.description": "Access and manage local files, run shell commands on your desktop",
|
||
"tools.builtins.lobe-local-system.readme": "Access your local filesystem on desktop. Read, write, search, and organize files. Execute shell commands with background task support and grep content with regex patterns.",
|
||
"tools.builtins.lobe-local-system.title": "Local System",
|
||
"tools.builtins.lobe-message.description": "Send, read, edit, and manage messages across multiple messaging platforms with a unified interface",
|
||
"tools.builtins.lobe-message.readme": "Cross-platform messaging tool supporting Discord, Telegram, Slack, Google Chat, and IRC. Provides unified APIs for message operations, reactions, pins, threads, channel management, and platform-specific features like polls.",
|
||
"tools.builtins.lobe-message.title": "Message",
|
||
"tools.builtins.lobe-notebook.description": "Create and manage documents in the topic notebook",
|
||
"tools.builtins.lobe-notebook.readme": "Create and manage persistent documents within conversation topics. Save notes, reports, articles, and markdown content that stays accessible across sessions.",
|
||
"tools.builtins.lobe-notebook.title": "Notebook",
|
||
"tools.builtins.lobe-page-agent.description": "Create, read, update, and delete nodes in XML-structured documents",
|
||
"tools.builtins.lobe-page-agent.readme": "Create and edit structured documents with precise node-level control. Initialize from Markdown, perform batch insert/modify/remove operations, and find-and-replace text across documents.",
|
||
"tools.builtins.lobe-page-agent.title": "Document",
|
||
"tools.builtins.lobe-remote-device.description": "Discover and manage remote desktop device connections",
|
||
"tools.builtins.lobe-remote-device.readme": "Manage connections to your desktop devices. List online devices, activate a device for remote operations, and check connection status.",
|
||
"tools.builtins.lobe-remote-device.title": "Remote Device",
|
||
"tools.builtins.lobe-skill-store.description": "Browse and install agent skills from the LobeHub marketplace. Use this when you need extended capabilities or want to install a specific skill.",
|
||
"tools.builtins.lobe-skill-store.title": "Skill Store",
|
||
"tools.builtins.lobe-skills.description": "Activate and use reusable skill packages",
|
||
"tools.builtins.lobe-skills.title": "Skills",
|
||
"tools.builtins.lobe-task.description": "Create, list, edit, and delete tasks with dependencies and review configuration",
|
||
"tools.builtins.lobe-task.title": "Task Tools",
|
||
"tools.builtins.lobe-topic-reference.description": "Retrieve context from referenced topic conversations",
|
||
"tools.builtins.lobe-topic-reference.title": "Topic Reference",
|
||
"tools.builtins.lobe-user-interaction.description": "Ask users questions through UI interactions and observe their lifecycle outcomes",
|
||
"tools.builtins.lobe-user-interaction.title": "User Interaction",
|
||
"tools.builtins.lobe-user-memory.description": "Remember user preferences, activities, and experiences across conversations",
|
||
"tools.builtins.lobe-user-memory.readme": "Build a personalized knowledge base about you. Remember preferences, track activities and experiences, store identity information, and recall relevant context in future conversations.",
|
||
"tools.builtins.lobe-user-memory.title": "Memory",
|
||
"tools.builtins.lobe-web-browsing.description": "Search the web for current information and crawl web pages to extract content. Supports multiple search engines, categories, and time ranges.",
|
||
"tools.builtins.lobe-web-browsing.readme": "Search the web for current information and crawl web pages to extract content. Supports multiple search engines, categories, and time ranges for comprehensive research.",
|
||
"tools.builtins.lobe-web-browsing.title": "Web Browsing",
|
||
"tools.builtins.lobe-web-onboarding.description": "Drive the web onboarding flow with a controlled agent runtime",
|
||
"tools.builtins.lobe-web-onboarding.title": "Web Onboarding",
|
||
"tools.builtins.lobehub.description": "Manage the LobeHub platform via CLI — knowledge bases, memory, agents, files, search, generation, and more.",
|
||
"tools.builtins.lobehub.title": "LobeHub",
|
||
"tools.builtins.notInstalled": "Not Installed",
|
||
"tools.builtins.task.description": "Task management and execution — create, track, review, and complete tasks via CLI.",
|
||
"tools.builtins.task.title": "Task",
|
||
"tools.builtins.uninstall": "Uninstall",
|
||
"tools.builtins.uninstallConfirm.desc": "Are you sure you want to uninstall {{name}}? This skill will be removed from the current agent.",
|
||
"tools.builtins.uninstallConfirm.title": "Uninstall {{name}}",
|
||
"tools.builtins.uninstalled": "Uninstalled",
|
||
"tools.disabled": "The current model does not support function calls and cannot use the skill",
|
||
"tools.klavis.addServer": "Add Server",
|
||
"tools.klavis.authCompleted": "Authentication Completed",
|
||
"tools.klavis.authFailed": "Authentication Failed",
|
||
"tools.klavis.authRequired": "Authentication Required",
|
||
"tools.klavis.connect": "Connect",
|
||
"tools.klavis.connected": "Connected",
|
||
"tools.klavis.disconnect": "Disconnect",
|
||
"tools.klavis.disconnected": "Disconnected",
|
||
"tools.klavis.error": "Error",
|
||
"tools.klavis.groupName": "Klavis Tools",
|
||
"tools.klavis.manage": "Manage Klavis",
|
||
"tools.klavis.manageTitle": "Manage Klavis Integration",
|
||
"tools.klavis.noServers": "No connected servers",
|
||
"tools.klavis.notEnabled": "Klavis service not enabled",
|
||
"tools.klavis.oauthRequired": "Please complete OAuth authentication in the new window",
|
||
"tools.klavis.pendingAuth": "Pending Authentication",
|
||
"tools.klavis.serverCreated": "Server created successfully",
|
||
"tools.klavis.serverCreatedFailed": "Failed to create server",
|
||
"tools.klavis.serverRemoved": "Server removed",
|
||
"tools.klavis.servers": "servers",
|
||
"tools.klavis.servers.airtable.description": "Airtable is a cloud-based database and spreadsheet platform that combines the flexibility of a spreadsheet with the power of a database, enabling teams to organize, track, and collaborate on projects with customizable views and powerful automation features",
|
||
"tools.klavis.servers.airtable.readme": "Integrate with Airtable to manage your databases and workflows. Query records, create entries, update data, and automate operations with customizable views and powerful tracking features.",
|
||
"tools.klavis.servers.cal-com.description": "Cal.com is an open-source scheduling platform that helps you schedule meetings without the back-and-forth emails. Manage event types, bookings, availability, and integrate with calendars for seamless appointment scheduling",
|
||
"tools.klavis.servers.cal-com.readme": "Connect to Cal.com to manage your scheduling and appointments. View availability, book meetings, manage event types, and automate your calendar through natural conversation.",
|
||
"tools.klavis.servers.clickup.description": "ClickUp is a comprehensive project management and productivity platform that helps teams organize tasks, manage projects, and collaborate effectively with customizable workflows and powerful tracking features",
|
||
"tools.klavis.servers.clickup.readme": "Connect to ClickUp to manage tasks, track projects, and organize your work. Create tasks, update statuses, manage custom workflows, and collaborate with your team through natural language commands.",
|
||
"tools.klavis.servers.confluence.description": "Confluence is a team workspace where knowledge and collaboration meet",
|
||
"tools.klavis.servers.confluence.readme": "Connect to Confluence to access and manage team documentation. Search pages, create content, organize spaces, and build your knowledge base through conversational AI assistance.",
|
||
"tools.klavis.servers.dropbox.description": "Complete file management solution for Dropbox cloud storage. Upload, download, organize files and folders, manage sharing and collaboration, handle file versions, create file requests, and perform batch operations on your Dropbox files and folders",
|
||
"tools.klavis.servers.dropbox.readme": "Integrate with Dropbox to access and manage your files. Upload, download, share files, manage folders, handle file versions, and organize your cloud storage through conversational AI.",
|
||
"tools.klavis.servers.figma.description": "Figma is a collaborative interface design tool for web and mobile applications.",
|
||
"tools.klavis.servers.figma.readme": "Connect to Figma to access design files and collaborate on projects. View designs, export assets, browse components, and manage your design workflow through natural conversation.",
|
||
"tools.klavis.servers.github.description": "Enhanced GitHub MCP Server",
|
||
"tools.klavis.servers.github.readme": "Connect to GitHub to manage repositories, issues, pull requests, and code. Search code, review changes, create branches, and collaborate on software development projects through conversational AI.",
|
||
"tools.klavis.servers.gmail.description": "Gmail is a free email service provided by Google",
|
||
"tools.klavis.servers.gmail.readme": "Bring the power of Gmail directly into your AI assistant. Read, compose, and send emails, search your inbox, manage labels, and organize your communications—all through natural conversation.",
|
||
"tools.klavis.servers.google-calendar.description": "Google Calendar is a time-management and scheduling calendar service",
|
||
"tools.klavis.servers.google-calendar.readme": "Integrate Google Calendar to view, create, and manage your events seamlessly. Schedule meetings, set reminders, check availability, and coordinate your time—all through natural language commands.",
|
||
"tools.klavis.servers.google-docs.description": "Google Docs is a word processor included as part of the free, web-based Google Docs Editors suite",
|
||
"tools.klavis.servers.google-docs.readme": "Integrate with Google Docs to create, edit, and manage documents. Write content, format text, collaborate in real-time, and access your documents through natural conversation.",
|
||
"tools.klavis.servers.google-drive.description": "Google Drive is a cloud storage service",
|
||
"tools.klavis.servers.google-drive.readme": "Connect to Google Drive to access, organize, and manage your files. Search documents, upload files, share content, and navigate your cloud storage efficiently through AI assistance.",
|
||
"tools.klavis.servers.google-sheets.description": "Google Sheets is a web-based spreadsheet application that allows users to create, edit, and collaborate on spreadsheets online",
|
||
"tools.klavis.servers.google-sheets.readme": "Connect to Google Sheets to read, write, and analyze spreadsheet data. Perform calculations, generate reports, create charts, and manage tabular data collaboratively with AI assistance.",
|
||
"tools.klavis.servers.hubspot.description": "HubSpot is a developer and marketer of software products for inbound marketing, sales, and customer service",
|
||
"tools.klavis.servers.hubspot.readme": "Integrate with HubSpot to manage contacts, deals, and marketing campaigns. Access CRM data, track pipelines, automate workflows, and streamline your sales and marketing operations.",
|
||
"tools.klavis.servers.jira.description": "Jira is a project management and issue tracking tool developed by Atlassian",
|
||
"tools.klavis.servers.jira.readme": "Integrate with Jira to manage issues, track progress, and organize sprints. Create tickets, update statuses, query project data, and streamline your development workflow through natural conversation.",
|
||
"tools.klavis.servers.notion.description": "Notion is a collaborative productivity and note-taking application",
|
||
"tools.klavis.servers.notion.readme": "Connect to Notion to access and manage your workspace. Create pages, search content, update databases, and organize your knowledge base—all through natural conversation with your AI assistant.",
|
||
"tools.klavis.servers.onedrive.description": "OneDrive is a file hosting service and synchronization service operated by Microsoft",
|
||
"tools.klavis.servers.onedrive.readme": "Connect to OneDrive to access and manage your Microsoft cloud files. Upload, download, share files, organize folders, and collaborate on documents through AI-powered assistance.",
|
||
"tools.klavis.servers.outlook-mail.description": "Outlook Mail is a web-based suite of webmail, contacts, tasks, and calendaring services from Microsoft.",
|
||
"tools.klavis.servers.outlook-mail.readme": "Integrate with Outlook Mail to read, send, and manage your Microsoft emails. Search messages, compose emails, manage folders, and organize your inbox through natural conversation.",
|
||
"tools.klavis.servers.salesforce.description": "Salesforce is the world's leading customer relationship management (CRM) platform that helps businesses connect with customers, partners, and potential customers",
|
||
"tools.klavis.servers.salesforce.readme": "Connect to Salesforce to manage customer relationships and sales data. Query records, update opportunities, track leads, and automate your CRM workflows through natural language commands.",
|
||
"tools.klavis.servers.slack.description": "Slack is a messaging app for business that connects people to the information they need",
|
||
"tools.klavis.servers.slack.readme": "Integrate with Slack to send messages, search conversations, and manage channels. Connect with your team, automate communication workflows, and access workspace information through natural language.",
|
||
"tools.klavis.servers.supabase.description": "Supabase official MCP Server",
|
||
"tools.klavis.servers.supabase.readme": "Integrate with Supabase to manage your database and backend services. Query data, manage authentication, handle storage, and interact with your application backend through natural conversation.",
|
||
"tools.klavis.servers.whatsapp.description": "WhatsApp Business API integration that enables sending text messages, media, and managing conversations with customers. Perfect for customer support, marketing campaigns, and automated messaging workflows through the official WhatsApp Business platform.",
|
||
"tools.klavis.servers.whatsapp.readme": "Integrate with WhatsApp Business to send messages, manage conversations, and engage with customers. Automate messaging workflows and handle communications through conversational AI.",
|
||
"tools.klavis.servers.youtube.description": "YouTube is a video-sharing platform where users can upload, share, and discover content. Access video information, transcripts, and metadata programmatically.",
|
||
"tools.klavis.servers.youtube.readme": "Connect to YouTube to search videos, access transcripts, and retrieve video information. Analyze content, extract metadata, and discover videos through natural conversation.",
|
||
"tools.klavis.servers.zendesk.description": "Zendesk is a customer service software company",
|
||
"tools.klavis.servers.zendesk.readme": "Integrate with Zendesk to manage support tickets and customer interactions. Create, update, and track support requests, access customer data, and streamline your support operations.",
|
||
"tools.klavis.tools": "tools",
|
||
"tools.klavis.verifyAuth": "I have completed authentication",
|
||
"tools.lobehubSkill.authorize": "Authorize",
|
||
"tools.lobehubSkill.connect": "Connect",
|
||
"tools.lobehubSkill.connected": "Connected",
|
||
"tools.lobehubSkill.disconnect": "Disconnect",
|
||
"tools.lobehubSkill.disconnectConfirm.desc": "You can still continue previous chats that reference {{name}} content. However, the assistant won't be able to access new content or perform new tasks.",
|
||
"tools.lobehubSkill.disconnectConfirm.title": "Disconnect {{name}}?",
|
||
"tools.lobehubSkill.disconnected": "Disconnected",
|
||
"tools.lobehubSkill.error": "Error",
|
||
"tools.lobehubSkill.providers.github.description": "GitHub is a platform for version control and collaboration, enabling developers to host, review, and manage code repositories.",
|
||
"tools.lobehubSkill.providers.github.readme": "Connect to GitHub to access your repositories, create and manage issues, review pull requests, and collaborate on code—all through natural conversation with your AI assistant.",
|
||
"tools.lobehubSkill.providers.linear.description": "Linear is a modern issue tracking and project management tool designed for high-performance teams to build better software faster",
|
||
"tools.lobehubSkill.providers.linear.readme": "Bring the power of Linear directly into your AI assistant. Create and update issues, manage sprints, track project progress, and streamline your development workflow—all through natural conversation.",
|
||
"tools.lobehubSkill.providers.microsoft.description": "Outlook Calendar is an integrated scheduling tool within Microsoft Outlook that enables users to create appointments, organize meetings with others, and manage their time and events effectively.",
|
||
"tools.lobehubSkill.providers.microsoft.readme": "Integrate with Outlook Calendar to view, create, and manage your events seamlessly. Schedule meetings, check availability, set reminders, and coordinate your time—all through natural language commands.",
|
||
"tools.lobehubSkill.providers.twitter.description": "X (Twitter) is a social media platform for sharing real-time updates, news, and engaging with your audience through posts, replies, and direct messages.",
|
||
"tools.lobehubSkill.providers.twitter.readme": "Connect to X (Twitter) to post tweets, manage your timeline, and engage with your audience. Create content, schedule posts, monitor mentions, and build your social media presence through conversational AI.",
|
||
"tools.lobehubSkill.providers.vercel.description": "Vercel is a cloud platform for frontend developers, providing hosting and serverless functions to deploy web applications with ease.",
|
||
"tools.lobehubSkill.providers.vercel.readme": "Connect to Vercel to manage your deployments, monitor project status, and control your infrastructure. Deploy applications, check build logs, manage environment variables, and scale your projects through conversational AI.",
|
||
"tools.notInstalled": "Not Installed",
|
||
"tools.notInstalledWarning": "This skill is not currently installed, which may affect agent functionality.",
|
||
"tools.plugins.enabled": "Enabled: {{num}}",
|
||
"tools.plugins.groupName": "Skills",
|
||
"tools.plugins.management": "Skill Management",
|
||
"tools.plugins.noEnabled": "No skills enabled",
|
||
"tools.plugins.store": "Add skill",
|
||
"tools.search": "Search skills...",
|
||
"tools.skillActivateMode.auto.desc": "AI can autonomously activate tools, run skills, and install new skills from the store",
|
||
"tools.skillActivateMode.auto.title": "Auto",
|
||
"tools.skillActivateMode.manual.desc": "Only user-selected tools and skills are available to AI",
|
||
"tools.skillActivateMode.manual.title": "Manual",
|
||
"tools.skillActivateMode.title": "Activate Mode",
|
||
"tools.tabs.all": "All",
|
||
"tools.tabs.installed": "Enabled",
|
||
"tools.title": "Skills"
|
||
}
|