From a94f4981239155114319eae44243dcee7d78f7e0 Mon Sep 17 00:00:00 2001 From: gansx <798622053@qq.com> Date: Tue, 27 Oct 2026 21:33:18 +0800 Subject: [PATCH 1/5] feat(engines): discover installed engines and managed install (lifecycle P0+P1) Scan PATH and well-known locations for existing Codex/Claude/Kimi/OpenClaw installations and surface them in engine settings with a one-click adopt action. Add managed installs for Codex and Claude Code: download the pinned platform package from npm, verify the registry integrity digest, extract atomically under ~/.ling-stack/engines///, and probe the installed binary before offering it as a profile. Kimi and OpenClaw keep manual guidance until their distribution channels are verified. Web and desktop share the new /execution-engines/discovery and /execution-engines//install routes through the api-client and the desktop IPC bridge. Evidence: real-daemon e2e with screenshot. --- apps/desktop/main/execution-engines/ipc.ts | 14 ++ apps/desktop/preload/main-window.ts | 4 + apps/desktop/shared/desktop-capabilities.ts | 5 +- apps/desktop/shared/ipc-channels.ts | 3 + apps/web/e2e/ui2-engine-lifecycle.spec.ts | 50 ++++++ .../ExecutionEnginesSettingsPage.tsx | 43 ++++- .../execution-engine-manager.ts | 46 ++++- apps/web/src/i18n/locales/en-US.ts | 4 + apps/web/src/i18n/locales/zh-CN.ts | 4 + .../1440x960-engine-discovery-en-US.png" | Bin 0 -> 124744 bytes packages/api-client/src/execution-engines.ts | 18 ++ packages/contracts/src/engine-lifecycle.ts | 129 +++++++++++++ packages/contracts/src/index.ts | 1 + .../features/execution-engines/controller.ts | 36 +++- .../execution-engines/engine-scanner.ts | 95 ++++++++++ .../src/features/execution-engines/feature.ts | 38 +++- .../managed-engine-installer.ts | 170 ++++++++++++++++++ .../test/engine-lifecycle-routes.test.mjs | 83 +++++++++ .../daemon/test/engine-lifecycle.test.mjs | 118 ++++++++++++ packages/localization/catalogs/bg-BG.json | 10 +- packages/localization/catalogs/bn-BD.json | 10 +- packages/localization/catalogs/bs-BA.json | 10 +- packages/localization/catalogs/ca-ES.json | 10 +- packages/localization/catalogs/cs-CZ.json | 10 +- packages/localization/catalogs/da-DK.json | 10 +- packages/localization/catalogs/de-DE.json | 10 +- packages/localization/catalogs/el-GR.json | 10 +- packages/localization/catalogs/en-US.json | 10 +- packages/localization/catalogs/es-419.json | 10 +- packages/localization/catalogs/es-ES.json | 10 +- packages/localization/catalogs/et-EE.json | 10 +- packages/localization/catalogs/fi-FI.json | 10 +- packages/localization/catalogs/fr-CA.json | 10 +- packages/localization/catalogs/fr-FR.json | 10 +- packages/localization/catalogs/gu-IN.json | 10 +- packages/localization/catalogs/hi-IN.json | 10 +- packages/localization/catalogs/hr-HR.json | 10 +- packages/localization/catalogs/hu-HU.json | 10 +- packages/localization/catalogs/hy-AM.json | 10 +- packages/localization/catalogs/id-ID.json | 10 +- packages/localization/catalogs/is-IS.json | 10 +- packages/localization/catalogs/it-IT.json | 10 +- packages/localization/catalogs/ja-JP.json | 10 +- packages/localization/catalogs/ka-GE.json | 10 +- packages/localization/catalogs/kn-IN.json | 10 +- packages/localization/catalogs/ko-KR.json | 10 +- packages/localization/catalogs/lv-LV.json | 10 +- packages/localization/catalogs/mk-MK.json | 10 +- packages/localization/catalogs/mr-IN.json | 10 +- packages/localization/catalogs/ms-MY.json | 10 +- packages/localization/catalogs/my-MM.json | 10 +- packages/localization/catalogs/nb-NO.json | 10 +- packages/localization/catalogs/nl-NL.json | 10 +- packages/localization/catalogs/pl-PL.json | 10 +- packages/localization/catalogs/pt-BR.json | 10 +- packages/localization/catalogs/pt-PT.json | 10 +- packages/localization/catalogs/ro-RO.json | 10 +- packages/localization/catalogs/ru-RU.json | 10 +- packages/localization/catalogs/sk-SK.json | 10 +- packages/localization/catalogs/sl-SI.json | 10 +- packages/localization/catalogs/so-SO.json | 10 +- packages/localization/catalogs/sq-AL.json | 10 +- packages/localization/catalogs/sr-RS.json | 10 +- packages/localization/catalogs/sv-SE.json | 10 +- packages/localization/catalogs/sw-TZ.json | 10 +- packages/localization/catalogs/ta-IN.json | 10 +- packages/localization/catalogs/te-IN.json | 10 +- packages/localization/catalogs/th-TH.json | 10 +- packages/localization/catalogs/tr-TR.json | 10 +- packages/localization/catalogs/uk-UA.json | 10 +- packages/localization/catalogs/vi-VN.json | 10 +- packages/localization/catalogs/zh-CN.json | 10 +- packages/localization/catalogs/zh-HK.json | 10 +- packages/localization/catalogs/zh-TW.json | 10 +- 74 files changed, 1348 insertions(+), 63 deletions(-) create mode 100644 apps/web/e2e/ui2-engine-lifecycle.spec.ts create mode 100644 "docs/design/ui2.0\345\215\207\347\272\247/evidence/settings/execution-engines/1440x960-engine-discovery-en-US.png" create mode 100644 packages/contracts/src/engine-lifecycle.ts create mode 100644 packages/daemon/src/features/execution-engines/engine-scanner.ts create mode 100644 packages/daemon/src/features/execution-engines/managed-engine-installer.ts create mode 100644 packages/daemon/test/engine-lifecycle-routes.test.mjs create mode 100644 packages/daemon/test/engine-lifecycle.test.mjs diff --git a/apps/desktop/main/execution-engines/ipc.ts b/apps/desktop/main/execution-engines/ipc.ts index 10847df42..c543f2cbd 100644 --- a/apps/desktop/main/execution-engines/ipc.ts +++ b/apps/desktop/main/execution-engines/ipc.ts @@ -33,6 +33,20 @@ export function registerExecutionEngineIpc(input: { if (args.length !== 0) invalid(); return (client) => client.listProfiles(); }); + bind(DESKTOP_IPC_CHANNELS.executionEnginesDiscover, (args) => { + if (args.length !== 0) invalid(); + return (client) => client.discover(); + }); + bind(DESKTOP_IPC_CHANNELS.executionEnginesInstall, (args) => { + if (args.length !== 1) invalid(); + const engineId = readEngineId(args[0]); + return (client) => client.install(engineId); + }); + bind(DESKTOP_IPC_CHANNELS.executionEnginesInstallStatus, (args) => { + if (args.length !== 1) invalid(); + const engineId = readEngineId(args[0]); + return (client) => client.installStatus(engineId); + }); bind(DESKTOP_IPC_CHANNELS.executionEngineProfileGet, (args) => { if (args.length !== 1) invalid(); const engineId = readEngineId(args[0]); diff --git a/apps/desktop/preload/main-window.ts b/apps/desktop/preload/main-window.ts index 9ddf3885e..c8e90a411 100644 --- a/apps/desktop/preload/main-window.ts +++ b/apps/desktop/preload/main-window.ts @@ -1,5 +1,6 @@ import { contextBridge, ipcRenderer } from "electron"; import { createLocalFileCapabilities } from "../shared/local-file-activation.js"; +import type { ExternalExecutionEngineId } from "@ling-stack/contracts"; import type { ComputerUseHostLayout, ComputerUsePipDeckOwner, @@ -153,6 +154,9 @@ const capabilities: LingDesktopCapabilities = { revoke: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.mobileAccessRevoke), }, executionEngines: { + discoverEngines: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesDiscover), + installEngine: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstall, engineId), + installEngineStatus: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstallStatus, engineId), listProfiles: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesList), getProfile: (engineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEngineProfileGet, engineId), saveProfile: (engineId, request) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEngineProfileSave, engineId, request), diff --git a/apps/desktop/shared/desktop-capabilities.ts b/apps/desktop/shared/desktop-capabilities.ts index 41522cf75..d99d56587 100644 --- a/apps/desktop/shared/desktop-capabilities.ts +++ b/apps/desktop/shared/desktop-capabilities.ts @@ -1,4 +1,4 @@ -import type { ComputerUseRuntimeStatus, ExecutionEngineConnectionProbe, ExecutionEngineInstallationProbe, ExecutionEngineLoginMethod, ExecutionEngineLoginOperation, ExecutionEngineProfileListResponse, ExecutionEngineProfileResponse, +import type { ComputerUseRuntimeStatus, EngineDiscoveryReport, ManagedInstallStatus, ExecutionEngineConnectionProbe, ExecutionEngineInstallationProbe, ExecutionEngineLoginMethod, ExecutionEngineLoginOperation, ExecutionEngineProfileListResponse, ExecutionEngineProfileResponse, ExternalExecutionEngineId, SaveExecutionEngineProfileRequest, SaveExecutionEngineSecretRequest } from "@ling-stack/contracts"; export interface DesktopExecutionEngineCapabilities { @@ -12,6 +12,9 @@ export interface DesktopExecutionEngineCapabilities { startLogin(engineId: ExternalExecutionEngineId, expectedRevision: number, method: ExecutionEngineLoginMethod): Promise; getLogin(engineId: ExternalExecutionEngineId, operationId: string): Promise; cancelLogin(engineId: ExternalExecutionEngineId, operationId: string): Promise; + discover(): Promise; + install(engineId: ExternalExecutionEngineId): Promise<{ readonly install: ManagedInstallStatus }>; + installStatus(engineId: ExternalExecutionEngineId): Promise<{ readonly install: ManagedInstallStatus }>; } import { SUPPORTED_LOCALES, diff --git a/apps/desktop/shared/ipc-channels.ts b/apps/desktop/shared/ipc-channels.ts index db5f83881..006bad661 100644 --- a/apps/desktop/shared/ipc-channels.ts +++ b/apps/desktop/shared/ipc-channels.ts @@ -25,6 +25,9 @@ export const DESKTOP_THEME_PACKAGE_IPC_CHANNELS = { export const DESKTOP_IPC_CHANNELS = { executionEnginesList: "ling-desktop:execution-engines:list", + executionEnginesDiscover: "ling-desktop:execution-engines:discover", + executionEnginesInstall: "ling-desktop:execution-engines:install", + executionEnginesInstallStatus: "ling-desktop:execution-engines:install-status", executionEngineProfileGet: "ling-desktop:execution-engines:profile-get", executionEngineProfileSave: "ling-desktop:execution-engines:profile-save", executionEngineProfileSecretSave: "ling-desktop:execution-engines:profile-secret-save", diff --git a/apps/web/e2e/ui2-engine-lifecycle.spec.ts b/apps/web/e2e/ui2-engine-lifecycle.spec.ts new file mode 100644 index 000000000..79ce8674e --- /dev/null +++ b/apps/web/e2e/ui2-engine-lifecycle.spec.ts @@ -0,0 +1,50 @@ +import { expect, test, type Page } from "@playwright/test"; +import { mkdir } from "node:fs/promises"; +import { fileURLToPath } from "node:url"; +import { startExecutionEngineFixture } from "./support/execution-engine-fixture.mjs"; + +const evidenceDirectory = fileURLToPath(new URL( + "../../../docs/design/ui2.0升级/evidence/settings/execution-engines/", + import.meta.url, +)); + +async function captureEvidence(page: Page, name: string): Promise { + await mkdir(evidenceDirectory, { recursive: true }); + await page.screenshot({ path: `${evidenceDirectory}${name}` }); +} + +/** Sidebar tooltips intercept pointer hit tests; dispatch the click directly. */ +async function clickSettingsEntry(page: Page): Promise { + await page.locator('button[aria-label="Settings"], button[aria-label="设置"]').waitFor({ state: "attached" }); + await page.evaluate(() => { + const button = [...document.querySelectorAll("button")] + .find((candidate) => ["Settings", "设置"].includes(candidate.getAttribute("aria-label") ?? "")); + if (!(button instanceof HTMLElement)) throw new Error("settings entry not found"); + button.click(); + }); +} + +test("engine settings discovers installed engines and offers managed install", async ({ page }) => { + test.setTimeout(90_000); + const fixture = await startExecutionEngineFixture({ port: 17891, origin: "http://127.0.0.1:4174" }); + try { + const enrollment = await fixture.enroll(); + await page.goto("/", { waitUntil: "domcontentloaded" }); + await clickSettingsEntry(page); + const laterButton = page.getByRole("button", { name: /稍后再说|Later|Maybe later/ }).first(); + if (await laterButton.isVisible().catch(() => false)) await laterButton.click(); + await page.getByLabel(/Settings sections|设置分组/).getByRole("button", { name: /Execution engines|执行引擎/ }).click(); + + const codeInput = page.getByLabel(/Authorization code|授权码/); + await expect(codeInput).toBeVisible(); + await codeInput.fill(enrollment.code); + await page.getByRole("button", { name: /Confirm|确认/ }).click(); + + const codexRow = page.locator('[data-engine-id="codex-app-server"]'); + await expect(codexRow).toBeVisible(); + await expect(codexRow).toContainText(/使用检测到的|Use detected/, { timeout: 30_000 }); + await captureEvidence(page, "1440x960-engine-discovery-en-US.png"); + } finally { + await fixture.close(); + } +}); diff --git a/apps/web/src/features/settings/execution-engines/ExecutionEnginesSettingsPage.tsx b/apps/web/src/features/settings/execution-engines/ExecutionEnginesSettingsPage.tsx index 1d3af4cf3..27950cf8f 100644 --- a/apps/web/src/features/settings/execution-engines/ExecutionEnginesSettingsPage.tsx +++ b/apps/web/src/features/settings/execution-engines/ExecutionEnginesSettingsPage.tsx @@ -2,6 +2,7 @@ import type { ExecutionEngineConnectionProbe, ExternalExecutionEngineId } from " import { ArrowRight, Cable, CircleHelp, KeyRound, LogIn, Pencil, PlugZap, Unplug } from "lucide-react"; import { useEffect, useRef, useState, useSyncExternalStore } from "react"; import { daemonBaseUrl } from "../../../api/client.js"; +import { getManagedEnginePackage } from "@ling-stack/contracts"; import { useDesktopTitlebarPlacement } from "../../../app/DesktopTitlebarSurface.js"; import { useI18n } from "../../../i18n.js"; import { Button, Field, InlineFeedback, Input, Skeleton } from "../../../shared/ui/index.js"; @@ -33,7 +34,7 @@ export function ExecutionEnginesSettingsPage({ cwd }: { readonly cwd: string }): const login = useSyncExternalStore(loginController.subscribe, loginController.getSnapshot); const [code, setCode] = useState(""); const returnFocusRef = useRef(null); - useEffect(() => { void manager.load(); return () => { manager.detach(); void loginController.cancel(); }; }, [manager]); + useEffect(() => { void manager.load().then(() => manager.discover()); return () => { manager.detach(); void loginController.cancel(); }; }, [manager]); useEffect(() => { const revalidate = () => { if (document.visibilityState === "visible" && !loginController.getSnapshot()) void manager.revalidate(); @@ -95,6 +96,7 @@ export function ExecutionEnginesSettingsPage({ cwd }: { readonly cwd: string }): : profile?.status === "disconnected" ? {t("Not connected")} : null}
+ {ready && !profile ? : null} {ready && !profile ? : null} {profile && loginMethod ?
; } + +function EngineDiscoveryActions({ engineId, manager }: { + readonly engineId: ExternalExecutionEngineId; + readonly manager: ExecutionEngineManager; +}): React.JSX.Element | null { + const { t } = useI18n(); + const state = useSyncExternalStore(manager.subscribe, manager.getSnapshot); + const candidate = state.discovery?.candidates.find((item) => item.engineId === engineId); + const install = state.installs[engineId]; + const pkg = getManagedEnginePackage(engineId); + const busy = Boolean(state.busy[engineId]); + if (install && install.phase !== "idle") { + const label = install.phase === "downloading" ? t("Downloading...") + : install.phase === "verifying" ? t("Verifying...") + : install.phase === "installed" ? t("Installed") + : t("Install"); + return ( +
+ + {install.phase === "failed" && install.error ? : null} +
+ ); + } + return ( +
+ {candidate?.status === "detected" && candidate.executablePath ? ( + + ) : null} + {pkg?.installable ? ( + + ) : candidate?.manualGuidance ? {candidate.manualGuidance} : null} +
+ ); +} diff --git a/apps/web/src/features/settings/execution-engines/execution-engine-manager.ts b/apps/web/src/features/settings/execution-engines/execution-engine-manager.ts index c7be12c36..2fad654e8 100644 --- a/apps/web/src/features/settings/execution-engines/execution-engine-manager.ts +++ b/apps/web/src/features/settings/execution-engines/execution-engine-manager.ts @@ -1,12 +1,12 @@ import type { ExecutionEngineManagementClient } from "@ling-stack/api-client"; import type { - ExecutionEngineConnectionProbe, ExecutionEngineLoginMethod, ExecutionEngineLoginOperation, - ExecutionEngineProfile, ExecutionEngineProfileConfiguration, ExternalExecutionEngineId, + EngineDiscoveryReport, ExecutionEngineConnectionProbe, ExecutionEngineLoginMethod, ExecutionEngineLoginOperation, + ExecutionEngineProfile, ExecutionEngineProfileConfiguration, ExternalExecutionEngineId, ManagedInstallStatus, } from "@ling-stack/contracts"; export type EngineManagementApi = Pick; + | "startLogin" | "getLogin" | "cancelLogin" | "discover" | "install" | "installStatus">; export type EngineManagementTransport = | { readonly kind: "desktop"; readonly api: EngineManagementApi } @@ -23,6 +23,8 @@ export interface EngineProfileEditor { export interface EngineManagementState { readonly phase: "loading" | "ready" | "authorization_required" | "unavailable" | "error"; readonly profiles: readonly ExecutionEngineProfile[]; + readonly discovery?: EngineDiscoveryReport; + readonly installs: Readonly>> readonly editor?: EngineProfileEditor; readonly busy: Readonly>>; readonly probes: Readonly>>; @@ -35,7 +37,7 @@ export interface EngineManagementState { export class ExecutionEngineManager { readonly transport: EngineManagementTransport; readonly #listeners = new Set<() => void>(); - #state: EngineManagementState = { phase: "loading", profiles: [], busy: {}, probes: {}, errors: {} }; + #state: EngineManagementState = { phase: "loading", profiles: [], installs: {}, busy: {}, probes: {}, errors: {} }; #loadRevision = 0; #scope = 0; #revalidation?: Promise; @@ -65,6 +67,7 @@ export class ExecutionEngineManager { && profile.revision === probe.profileRevision && profile.configurationFingerprint === probe.configurationFingerprint; })); this.publish({ phase: "ready", profiles, probes, error: undefined }); + void this.discover(); } catch (error) { if (revision !== this.#loadRevision || scope !== this.#scope) return; const code = engineManagementErrorCode(error); @@ -82,6 +85,41 @@ export class ExecutionEngineManager { finally { if (this.#revalidation === pending) this.#revalidation = undefined; } } + /** Read-only discovery of existing engine installations on the host. */ + async discover(): Promise { + if (this.#state.phase !== "ready" || this.transport.kind === "unavailable") return; + try { + const discovery = await this.transport.api.discover(); + this.publish({ discovery }); + } catch { + // Discovery is best-effort; the manual path stays available without it. + } + } + + /** Managed install of the pinned engine package, then open the prefilled profile draft. */ + async installEngine(engineId: ExternalExecutionEngineId): Promise { + if (this.#state.phase !== "ready" || this.transport.kind === "unavailable" || this.#state.busy[engineId]) return; + const publish = (install: ManagedInstallStatus): void => { + this.publish({ installs: { ...this.#state.installs, [engineId]: install } }); + }; + try { + publish((await this.transport.api.install(engineId)).install); + let current = this.#state.installs[engineId]; + while (current && (current.phase === "downloading" || current.phase === "verifying")) { + await new Promise((resolve) => setTimeout(resolve, 1500)); + publish((await this.transport.api.installStatus(engineId)).install); + current = this.#state.installs[engineId]; + } + if (current?.phase === "installed" && current.executablePath) { + this.edit(engineId); + this.updateDraft({ executablePath: current.executablePath }); + } + } catch (error) { + const code = engineManagementErrorCode(error); + this.publish({ installs: { ...this.#state.installs, [engineId]: { engineId, phase: "failed", error: code, updatedAt: new Date().toISOString() } }, errors: { ...this.#state.errors, [engineId]: code } }); + } + } + edit(engineId: ExternalExecutionEngineId): void { if (this.#state.phase !== "ready" || this.#state.editor || this.#state.busy[engineId]) return; const profile = this.#state.profiles.find((item) => item.configuration.engineId === engineId); diff --git a/apps/web/src/i18n/locales/en-US.ts b/apps/web/src/i18n/locales/en-US.ts index 728441c86..20942a06b 100644 --- a/apps/web/src/i18n/locales/en-US.ts +++ b/apps/web/src/i18n/locales/en-US.ts @@ -2870,6 +2870,10 @@ export const enUS = { "No secret": "No secret", "Sync tools": "Sync tools", "Check connection": "Check connection", + "Downloading...": "Downloading...", + "Verifying...": "Verifying...", + "Installed": "Installed", + "Use detected {version}": "Use detected {version}", "Sync tool list": "Sync tool list", "Connection check succeeded": "Connection check succeeded", "Connection check failed": "Connection check failed", diff --git a/apps/web/src/i18n/locales/zh-CN.ts b/apps/web/src/i18n/locales/zh-CN.ts index 6477d18b8..47cafbf80 100644 --- a/apps/web/src/i18n/locales/zh-CN.ts +++ b/apps/web/src/i18n/locales/zh-CN.ts @@ -438,6 +438,10 @@ export const zhCN = { "No secret": "未配置密钥", "Sync tools": "同步工具", "Check connection": "检查连接", + "Downloading...": "正在下载…", + "Verifying...": "正在校验…", + "Installed": "已安装", + "Use detected {version}": "使用检测到的 {version}", "Sync tool list": "同步工具列表", "Connection check succeeded": "连接检查成功", "Connection check failed": "连接检查失败", diff --git "a/docs/design/ui2.0\345\215\207\347\272\247/evidence/settings/execution-engines/1440x960-engine-discovery-en-US.png" "b/docs/design/ui2.0\345\215\207\347\272\247/evidence/settings/execution-engines/1440x960-engine-discovery-en-US.png" new file mode 100644 index 0000000000000000000000000000000000000000..e8fdd75ad6c37edeffbf1b7826af7ea9ec46b939 GIT binary patch literal 124744 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�?|EioK-sY{pmzx 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

KQr#M$WpbUTD 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 literal 0 HcmV?d00001 diff --git a/packages/api-client/src/execution-engines.ts b/packages/api-client/src/execution-engines.ts index 349d802fd..371e18558 100644 --- a/packages/api-client/src/execution-engines.ts +++ b/packages/api-client/src/execution-engines.ts @@ -1,6 +1,7 @@ import type { ExecutionEngineConnectionProbe, ExecutionEngineInstallationProbe, ExecutionEngineLoginMethod, ExecutionEngineLoginOperation, ExecutionEngineManagementSession, ExecutionEngineProfileListResponse, ExecutionEngineProfileResponse, ExternalExecutionEngineId, SaveExecutionEngineProfileRequest, SaveExecutionEngineSecretRequest } from "@ling-stack/contracts"; import { isExecutionEngineSecretValue } from "@ling-stack/contracts"; +import type { EngineDiscoveryReport, ManagedInstallStatus } from "@ling-stack/contracts"; import { LingDaemonError } from "./errors.js"; export interface ExecutionEngineManagementClientOptions { @@ -52,6 +53,18 @@ export class ExecutionEngineManagementClient { return this.request("", "GET"); } + discover(): Promise { + return this.request("/discovery", "GET"); + } + + install(engineId: ExternalExecutionEngineId): Promise<{ readonly install: ManagedInstallStatus }> { + return this.request(enginePath(engineId) + "/install", "POST", {}); + } + + installStatus(engineId: ExternalExecutionEngineId): Promise<{ readonly install: ManagedInstallStatus }> { + return this.request(enginePath(engineId) + "/install", "GET"); + } + async getProfile(engineId: ExternalExecutionEngineId): Promise { return this.request(profilePath(engineId), "GET"); } @@ -153,6 +166,11 @@ export class ExecutionEngineManagementClient { } } +function enginePath(engineId: ExternalExecutionEngineId): string { + profilePath(engineId); + return `/${engineId}`; +} + function profilePath(engineId: ExternalExecutionEngineId): string { if (!["codex-app-server", "claude-agent-sdk", "kimi-acp", "openclaw-acp"].includes(engineId)) throw failure("engine_request_invalid", 400); return `/${engineId}/profile`; diff --git a/packages/contracts/src/engine-lifecycle.ts b/packages/contracts/src/engine-lifecycle.ts new file mode 100644 index 000000000..52ecccaa2 --- /dev/null +++ b/packages/contracts/src/engine-lifecycle.ts @@ -0,0 +1,129 @@ +/** + * Managed engine lifecycle (execution-engine-managed-lifecycle): discovery of + * existing installations and managed downloads of pinned engine packages. + */ + +import { isExternalExecutionEngineId, type ExternalExecutionEngineId } from "./execution-engines.js"; + +export interface ManagedEnginePackage { + readonly engineId: ExternalExecutionEngineId; + readonly packageName: string; + /** Exact package version downloaded for managed installs. */ + readonly pinnedVersion: string; + /** Oldest version accepted when scanning an existing installation. */ + readonly minSupported: string; + /** Newest version verified against Ling's wire protocol. */ + readonly maxVerified: string; + /** Whether this engine supports managed install in this release. */ + readonly installable: boolean; + /** Default command name resolved during discovery. */ + readonly commandName: string; + /** Shown when the engine is not installable in this release. */ + readonly manualGuidance?: string; + readonly install?: ManagedEngineInstallLayout; +} + +/** How a managed package tarball maps onto the executable on disk. */ +export interface ManagedEngineInstallLayout { + /** npm package that carries the platform binary (may differ from packageName). */ + readonly binaryPackageName: (platformKey: string) => string; + /** npm version of the platform package (codex suffixes the platform key). */ + readonly binaryVersion: (pinnedVersion: string, platformKey: string) => string; + /** Tarball-internal path of the executable for the target triple. */ + readonly binaryPath: (targetTriple: string) => string; +} + +export const MANAGED_ENGINE_PACKAGES: readonly ManagedEnginePackage[] = [ + { + engineId: "codex-app-server", + packageName: "@openai/codex", + pinnedVersion: "0.164.0", + minSupported: "0.125.0", + maxVerified: "0.164.0", + installable: true, + commandName: "codex", + install: { + binaryPackageName: () => "@openai/codex", + binaryVersion: (pinnedVersion, platformKey) => pinnedVersion + "-" + platformKey, + binaryPath: (targetTriple) => "package/vendor/" + targetTriple + "/bin/codex", + }, + }, + { + engineId: "claude-agent-sdk", + packageName: "@anthropic-ai/claude-code", + pinnedVersion: "2.1.311", + minSupported: "2.0.0", + maxVerified: "2.1.311", + installable: true, + commandName: "claude", + install: { + binaryPackageName: (platformKey) => "@anthropic-ai/claude-code-" + platformKey, + binaryVersion: (pinnedVersion) => pinnedVersion, + binaryPath: () => "package/claude", + }, + }, + { + engineId: "kimi-acp", + packageName: "", + pinnedVersion: "", + minSupported: "", + maxVerified: "", + installable: false, + commandName: "kimi", + manualGuidance: "Kimi CLI 不走 npm 分发;请按 Kimi 官方指引安装后在档案中指定可执行文件路径。", + }, + { + engineId: "openclaw-acp", + packageName: "", + pinnedVersion: "", + minSupported: "", + maxVerified: "", + installable: false, + commandName: "openclaw", + manualGuidance: "OpenClaw 是独立网关;请按其官方指引部署后在档案中指定网关地址与凭据。", + }, +]; + +export function getManagedEnginePackage(engineId: ExternalExecutionEngineId): ManagedEnginePackage | undefined { + return MANAGED_ENGINE_PACKAGES.find((entry) => entry.engineId === engineId); +} + +export type EngineDiscoveryStatus = "detected" | "not_found" | "unsupported"; + +export interface EngineDiscoveryCandidate { + readonly engineId: ExternalExecutionEngineId; + readonly status: EngineDiscoveryStatus; + readonly executablePath?: string; + readonly version?: string; + readonly digest?: string; + readonly installable: boolean; + readonly manualGuidance?: string; +} + +export interface EngineDiscoveryReport { + readonly checkedAt: string; + readonly candidates: readonly EngineDiscoveryCandidate[]; +} + +export function isEngineDiscoveryReport(value: unknown): value is EngineDiscoveryReport { + return typeof value === "object" && value !== null && Array.isArray((value as EngineDiscoveryReport).candidates); +} + +export type ManagedInstallPhase = "idle" | "downloading" | "verifying" | "installed" | "failed"; + +export interface ManagedInstallStatus { + readonly engineId: ExternalExecutionEngineId; + readonly phase: ManagedInstallPhase; + readonly version?: string; + readonly executablePath?: string; + readonly error?: string; + readonly updatedAt: string; +} + +export function isManagedEngineInstallRequest(value: unknown): value is { readonly expectedRevision?: number } { + return typeof value === "object" && value !== null && !Array.isArray(value); +} + +export function isManagedInstallableEngineId(value: unknown): value is ExternalExecutionEngineId { + return isExternalExecutionEngineId(value) && getManagedEnginePackage(value)?.installable === true; +} diff --git a/packages/contracts/src/index.ts b/packages/contracts/src/index.ts index 5373c67b8..a1358cc0f 100644 --- a/packages/contracts/src/index.ts +++ b/packages/contracts/src/index.ts @@ -21,6 +21,7 @@ export * from "./provider-diagnostics.js"; export type * from "./runner-readiness.js"; export * from "./runner-acceptance.js"; export * from "./execution-engines.js"; +export * from "./engine-lifecycle.js"; export * from "./threads.js"; export type * from "./conversations.js"; export * from "./conversation-continuity.js"; diff --git a/packages/daemon/src/features/execution-engines/controller.ts b/packages/daemon/src/features/execution-engines/controller.ts index 807cfdfd1..0a2fc6fd3 100644 --- a/packages/daemon/src/features/execution-engines/controller.ts +++ b/packages/daemon/src/features/execution-engines/controller.ts @@ -5,6 +5,7 @@ import { assertProfileRevision, ExecutionEngineProfileError, isExternalExecution parseExecutionEngineProfileConfiguration, type ExecutionEngineProfileStore } from "@ling-stack/core"; import { readJsonBody } from "../../shared/request.js"; import { EngineAuthorityError, type EngineManagementAuthority } from "./authority.js"; +import { ManagedInstallError } from "./managed-engine-installer.js"; import { EngineProbeBusyError } from "./installation-probe.js"; import type { EngineLoginManager } from "./login-manager.js"; import { EngineLoginError } from "./native-login.js"; @@ -18,6 +19,9 @@ export class EngineManagementController { readonly authority: EngineManagementAuthority; readonly getStore: () => ExecutionEngineProfileStore; readonly probe?: (profile: ExecutionEngineProfile, signal: AbortSignal, mode: ExecutionEngineProbeMode) => Promise; + readonly discover?: () => Promise; + readonly install?: (engineId: ExternalExecutionEngineId, signal: AbortSignal) => Promise; + readonly installStatus?: (engineId: ExternalExecutionEngineId) => unknown; readonly onProfileChanged?: (engineId: ExternalExecutionEngineId) => void; readonly beforeProfileChange?: (engineId: ExternalExecutionEngineId) => void; readonly logins?: EngineLoginManager; @@ -57,11 +61,17 @@ export class EngineManagementController { writeEngineJson(response, 200, { revoked: true }, origin); return true; } + if (url.pathname === `${prefix}/discovery` && request.method === "GET") { + if (!this.options.discover) { writeEngineJson(response, 404, { error: "engine_route_not_found" }, origin); return true; } + this.options.authority.authorize(request); + writeEngineJson(response, 200, await this.options.discover(), origin); + return true; + } if (url.pathname === prefix && request.method === "GET") { writeEngineJson(response, 200, { profiles: this.options.getStore().list() }, origin); return true; } - const match = /^\/execution-engines\/([^/]+)\/(profile|probe|auth)(?:\/([^/]+))?$/.exec(url.pathname); + const match = /^\/execution-engines\/([^/]+)\/(profile|probe|auth|install)(?:\/([^/]+))?$/.exec(url.pathname); const engineId = match?.[1]; const secretRoute = match?.[2] === "profile" && match[3] === "secret"; if (!isExternalExecutionEngineId(engineId) || (match?.[3] && match?.[2] !== "auth" && !secretRoute)) { @@ -118,6 +128,29 @@ export class EngineManagementController { } else writeEngineJson(response, 405, { error: "engine_method_not_allowed" }, origin); return true; } + if (match?.[2] === "install") { + if (match[3]) { writeEngineJson(response, 404, { error: "engine_route_not_found" }, origin); return true; } + if (!this.options.install || !this.options.installStatus) { writeEngineJson(response, 404, { error: "engine_route_not_found" }, origin); return true; } + if (request.method === "GET") { + writeEngineJson(response, 200, { install: this.options.installStatus(engineId) }, origin); + return true; + } + if (request.method !== "POST") { writeEngineJson(response, 405, { error: "engine_method_not_allowed" }, origin); return true; } + this.options.authority.authorize(request); + this.options.beforeProfileChange?.(engineId); + const abort = new AbortController(); + const closed = (): void => { if (!response.writableEnded) abort.abort(); }; + response.once("close", closed); + try { + const signal = AbortSignal.any([abort.signal, this.options.authority.lifetime(principal)]); + const result = await this.options.install(engineId, signal); + this.options.authority.authorize(request); + writeEngineJson(response, 200, { install: result }, origin); + } finally { + response.off("close", closed); + } + return true; + } if (match?.[2] === "probe") { if (request.method !== "POST" || !this.options.probe) { writeEngineJson(response, 405, { error: "engine_method_not_allowed" }, origin); @@ -213,6 +246,7 @@ function classifyError(error: unknown): { readonly status: number; readonly code if (error instanceof EngineSecretStoreError) return { status: 500, code: error.code }; if (error instanceof EngineLoginError) return { status: error.code === "engine_login_not_found" ? 404 : 409, code: error.code }; if (error instanceof EngineProbeBusyError) return { status: 409, code: error.code }; + if (error instanceof ManagedInstallError) return { status: error.message.startsWith("managed_install_unsupported_engine") ? 400 : 500, code: error.message.split(":")[0] ?? "managed_install_failed" }; if (error instanceof EngineAuthorityError) { return { status: error.code === "engine_authority_required" ? 401 : error.code === "engine_enrollment_rate_limited" ? 429 : 403, code: error.code }; } diff --git a/packages/daemon/src/features/execution-engines/engine-scanner.ts b/packages/daemon/src/features/execution-engines/engine-scanner.ts new file mode 100644 index 000000000..5244eb566 --- /dev/null +++ b/packages/daemon/src/features/execution-engines/engine-scanner.ts @@ -0,0 +1,95 @@ +/** Read-only discovery of existing engine installations (managed-lifecycle P0). */ +import { constants } from "node:fs"; +import { access, realpath, stat } from "node:fs/promises"; +import { homedir } from "node:os"; +import { delimiter, join } from "node:path"; +import { + MANAGED_ENGINE_PACKAGES, + type EngineDiscoveryCandidate, + type EngineDiscoveryReport, + type ExternalExecutionEngineId, +} from "@ling-stack/contracts"; +import type { ExecutionEngineProfile } from "@ling-stack/contracts"; +import { probeEngineInstallation } from "./installation-probe.js"; + +/** Well-known install locations beyond PATH, checked in order. */ +function extraCandidateDirs(home: string, platform: NodeJS.Platform): readonly string[] { + if (platform === "win32") return []; + return ["/opt/homebrew/bin", "/usr/local/bin", "/usr/bin", join(home, ".local", "bin")]; +} + +function candidatePaths(commandName: string, env: NodeJS.ProcessEnv, home: string, platform: NodeJS.Platform): readonly string[] { + const dirs = [...(env.PATH ?? "").split(delimiter).filter(Boolean), ...extraCandidateDirs(home, platform)]; + const suffixes = platform === "win32" ? [".cmd", ".exe", ".bat", ""] : [""]; + const paths: string[] = []; + for (const dir of dirs) for (const suffix of suffixes) paths.push(join(dir, commandName + suffix)); + return paths; +} + +async function firstExecutable(paths: readonly string[]): Promise { + for (const candidate of paths) { + try { + const resolved = await realpath(candidate); + const info = await stat(resolved); + if (!info.isFile()) continue; + await access(resolved, constants.X_OK); + return resolved; + } catch { + continue; + } + } + return undefined; +} + +function discoveryProfile(engineId: ExternalExecutionEngineId, executablePath: string): ExecutionEngineProfile { + return { + schemaVersion: 1, + id: `discovery:${engineId}`, + revision: 0, + status: "configured", + configuration: { engineId, executablePath, authProfileId: "discovery" }, + configurationFingerprint: "discovery", + updatedAt: new Date(0).toISOString(), + }; +} + +export interface DiscoverEnginesOptions { + readonly env?: NodeJS.ProcessEnv; + readonly home?: string; + readonly platform?: NodeJS.Platform; + readonly signal?: AbortSignal; + readonly probeTimeoutMs?: number; + readonly spawn?: Parameters[1] extends { spawn?: infer S } ? S : never; + /** Testing seam: overrides executable lookup per engine. */ + readonly resolveExecutable?: (commandName: string) => Promise; +} + +/** Scan PATH and well-known locations for installed engines; probe what is found. */ +export async function discoverEngines(options: DiscoverEnginesOptions = {}): Promise { + const env = options.env ?? process.env; + const home = options.home ?? homedir(); + const platform = options.platform ?? process.platform; + const candidates: EngineDiscoveryCandidate[] = []; + for (const pkg of MANAGED_ENGINE_PACKAGES) { + const executable = options.resolveExecutable + ? await options.resolveExecutable(pkg.commandName) + : await firstExecutable(candidatePaths(pkg.commandName, env, home, platform)); + if (!executable) { + candidates.push({ engineId: pkg.engineId, status: "not_found", installable: pkg.installable, manualGuidance: pkg.manualGuidance }); + continue; + } + const probe = await probeEngineInstallation(discoveryProfile(pkg.engineId, executable), { + signal: options.signal, timeoutMs: options.probeTimeoutMs ?? 3000, spawn: options.spawn, + }); + candidates.push({ + engineId: pkg.engineId, + status: "detected", + executablePath: executable, + version: probe.runtimeVersion, + digest: probe.executableDigest, + installable: pkg.installable, + manualGuidance: pkg.manualGuidance, + }); + } + return { checkedAt: new Date().toISOString(), candidates }; +} diff --git a/packages/daemon/src/features/execution-engines/feature.ts b/packages/daemon/src/features/execution-engines/feature.ts index 2c54036c2..231f64bfa 100644 --- a/packages/daemon/src/features/execution-engines/feature.ts +++ b/packages/daemon/src/features/execution-engines/feature.ts @@ -1,10 +1,13 @@ import { randomBytes } from "node:crypto"; import type { IncomingMessage, ServerResponse } from "node:http"; -import type { ExecutionEngineProfile, ExecutionEngineProbe, ExecutionEngineProbeMode, ExternalExecutionEngineId } from "@ling-stack/contracts"; +import type { ExecutionEngineProfile, ExecutionEngineProbe, ExecutionEngineProbeMode, ExternalExecutionEngineId, ManagedInstallPhase } from "@ling-stack/contracts"; +import { getManagedEnginePackage } from "@ling-stack/contracts"; import { ExecutionEngineProfileStore, type LingStackUserConfigPaths, type SecretResolver } from "@ling-stack/core"; import { EngineManagementAuthority, engineManagementCsrf } from "./authority.js"; import { EngineManagementController } from "./controller.js"; import { EngineProbeBusyError, probeEngineInstallation } from "./installation-probe.js"; +import { discoverEngines } from "./engine-scanner.js"; +import { installManagedEngine, ManagedInstallError } from "./managed-engine-installer.js"; import { probeEngineConnection } from "./connection-probe.js"; import { EngineLoginManager, type NativeLoginProcessOptions } from "./login-manager.js"; import { createEngineSecretStore, withEngineSecretResolver, type EngineSecretStore } from "./engine-secret-store.js"; @@ -28,6 +31,8 @@ export interface EngineManagementFeatureOptions { readonly probe?: NativeProbeProcessOptions; readonly secretResolver?: SecretResolver; readonly secretStore?: EngineSecretStore; + /** Testing seam: overrides the managed download while keeping status transitions real. */ + readonly lifecycle?: { readonly install?: typeof installManagedEngine }; readonly runnerRegistry?: RunnerRegistry; } @@ -40,6 +45,7 @@ export class EngineManagementFeature { private readonly probes = new Map }>(); private readonly logins: EngineLoginManager; private closing?: Promise; + private readonly installs = new Map(); private readonly secretResolver: SecretResolver; constructor(private readonly options: EngineManagementFeatureOptions) { @@ -64,6 +70,9 @@ export class EngineManagementFeature { logins: this.logins, secretStore, probe: (profile, signal, mode) => this.probe(profile, signal, mode), + discover: () => discoverEngines(), + install: (engineId, signal) => this.install(engineId, signal), + installStatus: (engineId) => this.installStatus(engineId), beforeProfileChange: (engineId) => this.logins.assertIdle(engineId), onProfileChanged: (engineId) => { this.probes.get(engineId)?.controller.abort(); this.logins.invalidate(engineId); }, }); @@ -86,6 +95,33 @@ export class EngineManagementFeature { return this.closing; } + private installStatus(engineId: ExternalExecutionEngineId) { + return this.installs.get(engineId) ?? { phase: "idle" as const }; + } + + private async install(engineId: ExternalExecutionEngineId, signal: AbortSignal) { + const pkg = getManagedEnginePackage(engineId); + if (!pkg?.installable) throw new ManagedInstallError(`managed_install_unsupported_engine:${engineId}`); + const existing = this.installs.get(engineId); + if (existing && (existing.phase === "downloading" || existing.phase === "verifying")) return existing; + const mark = (phase: ManagedInstallPhase, extra: Record = {}) => { + const status = { phase, updatedAt: new Date().toISOString(), ...extra }; + this.installs.set(engineId, status); + return status; + }; + mark("downloading"); + try { + const install = this.options.lifecycle?.install ?? installManagedEngine; + const result = await install(engineId, this.options.userPaths, { signal }); + return mark("installed", { executablePath: result.executablePath, version: result.version }); + } catch (error) { + if (signal.aborted) throw error; + const message = error instanceof Error ? error.message : String(error); + mark("failed", { error: message }); + throw error; + } + } + private probe(profile: ExecutionEngineProfile, signal: AbortSignal, mode: ExecutionEngineProbeMode): Promise { const id = profile.configuration.engineId; this.logins.assertIdle(id); diff --git a/packages/daemon/src/features/execution-engines/managed-engine-installer.ts b/packages/daemon/src/features/execution-engines/managed-engine-installer.ts new file mode 100644 index 000000000..ef1a1298d --- /dev/null +++ b/packages/daemon/src/features/execution-engines/managed-engine-installer.ts @@ -0,0 +1,170 @@ +/** Managed engine downloads (managed-lifecycle P1): pinned npm package → verified binary. */ +import { spawn } from "node:child_process"; +import { createHash } from "node:crypto"; +import { chmod, mkdir, mkdtemp, readFile, rename, rm, writeFile } from "node:fs/promises"; +import { constants } from "node:fs"; +import { access } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { dirname, join } from "node:path"; +import { getManagedEnginePackage, type ExternalExecutionEngineId, type ManagedEnginePackage } from "@ling-stack/contracts"; +import type { LingStackUserConfigPaths } from "@ling-stack/core"; +import { probeEngineInstallation } from "./installation-probe.js"; + +export class ManagedInstallError extends Error { + readonly code = "managed_install_failed"; + constructor(message: string) { + super(message); + this.name = "ManagedInstallError"; + } +} + +export interface ManagedInstallResult { + readonly engineId: ExternalExecutionEngineId; + readonly version: string; + readonly executablePath: string; + readonly integrity: string; + readonly installedAt: string; +} + +interface PlatformTarget { + readonly platformKey: string; + readonly targetTriple: string; +} + +function resolvePlatformTarget(platform: NodeJS.Platform, arch: string): PlatformTarget { + const key = `${platform}-${arch}`; + const triples: Record = { + "darwin-arm64": "aarch64-apple-darwin", + "darwin-x64": "x86_64-apple-darwin", + "linux-x64": "x86_64-unknown-linux-musl", + "linux-arm64": "aarch64-unknown-linux-musl", + "win32-x64": "x86_64-pc-windows-msvc", + "win32-arm64": "aarch64-pc-windows-msvc", + }; + const targetTriple = triples[key]; + if (!targetTriple) throw new ManagedInstallError(`managed_install_unsupported_platform:${key}`); + return { platformKey: key, targetTriple }; +} + +function tarballName(packageName: string, version: string): string { + return `${packageName.split("/").pop()}-${version}.tgz`; +} + +async function fetchJson(fetchImpl: typeof fetch, url: string, signal?: AbortSignal): Promise> { + const response = await fetchImpl(url, { signal }); + if (!response.ok) throw new ManagedInstallError(`managed_install_registry_http_${response.status}`); + return await response.json() as Record; +} + +function readDist(metadata: Record): { tarball: string; integrity: string } { + const dist = metadata.dist; + if (!dist || typeof dist !== "object") throw new ManagedInstallError("managed_install_registry_metadata_invalid"); + const record = dist as Record; + if (typeof record.tarball !== "string" || typeof record.integrity !== "string" || !record.integrity.startsWith("sha512-")) { + throw new ManagedInstallError("managed_install_registry_metadata_invalid"); + } + return { tarball: record.tarball, integrity: record.integrity }; +} + +async function extractTarball(tarball: string, targetDir: string, spawnImpl: typeof spawn): Promise { + await mkdir(targetDir, { recursive: true }); + await new Promise((resolve, reject) => { + const child = spawnImpl("tar", ["-xzf", tarball, "-C", targetDir], { stdio: ["ignore", "ignore", "pipe"] }); + let stderr = ""; + child.stderr?.on("data", (chunk: Buffer) => { stderr += chunk.toString("utf8"); }); + child.once("error", reject); + child.once("exit", (code) => (code === 0 ? resolve() : reject(new ManagedInstallError(`managed_install_extract_failed:${stderr.slice(0, 200)}`)))); + }); +} + +export interface InstallManagedEngineOptions { + readonly signal?: AbortSignal; + readonly fetchImpl?: typeof fetch; + readonly spawnImpl?: typeof spawn; + readonly platform?: NodeJS.Platform; + readonly arch?: string; + readonly now?: () => Date; +} + +/** Download, verify and install the pinned engine package under the user root. */ +export async function installManagedEngine( + engineId: ExternalExecutionEngineId, + userPaths: Pick, + options: InstallManagedEngineOptions = {}, +): Promise { + const pkg = getManagedEnginePackage(engineId); + if (!pkg?.installable || !pkg.install) throw new ManagedInstallError(`managed_install_unsupported_engine:${engineId}`); + const platform = options.platform ?? process.platform; + const arch = options.arch ?? process.arch; + const target = resolvePlatformTarget(platform, arch); + const fetchImpl = options.fetchImpl ?? fetch; + const spawnImpl = options.spawnImpl ?? spawn; + const now = options.now ?? (() => new Date()); + + const binaryPackage = pkg.install.binaryPackageName(target.platformKey); + const binaryVersion = pkg.install.binaryVersion(pkg.pinnedVersion, target.platformKey); + const metadata = await fetchJson(fetchImpl, `https://registry.npmjs.org/${binaryPackage}/${binaryVersion}`, options.signal); + const dist = readDist(metadata); + + const root = await mkdtemp(join(tmpdir(), "ling-engine-install-")); + try { + const tarballPath = join(root, tarballName(binaryPackage, binaryVersion)); + const response = await fetchImpl(dist.tarball, { signal: options.signal }); + if (!response.ok) throw new ManagedInstallError(`managed_install_download_http_${response.status}`); + const bytes = Buffer.from(await response.arrayBuffer()); + const digest = `sha512-${createHash("sha512").update(bytes).digest("base64")}`; + if (digest !== dist.integrity) throw new ManagedInstallError("managed_install_integrity_mismatch"); + await writeFile(tarballPath, bytes); + + const extractDir = join(root, "extract"); + await extractTarball(tarballPath, extractDir, spawnImpl); + + const relativeBinary = pkg.install.binaryPath(target.targetTriple); + const binary = join(extractDir, relativeBinary); + await access(binary, constants.X_OK).catch(async () => { + if (platform !== "win32") await chmod(binary, 0o755); + }); + + const installRoot = join(userPaths.rootDir, "engines", engineId, pkg.pinnedVersion); + const parent = dirname(installRoot); + await mkdir(parent, { recursive: true }); + const marker = join(installRoot, ".ling-managed.json"); + let executablePath = join(installRoot, relativeBinary); + let alreadyInstalled = false; + try { + const existing = JSON.parse(await readFile(marker, "utf8")) as Record; + alreadyInstalled = existing.integrity === dist.integrity; + } catch { + alreadyInstalled = false; + } + if (!alreadyInstalled) { + const staged = join(parent, `.staging-${pkg.pinnedVersion}-${process.pid}`); + await rm(staged, { recursive: true, force: true }); + await rename(extractDir, staged); + await rm(installRoot, { recursive: true, force: true }); + await rename(staged, installRoot); + await writeFile(marker, JSON.stringify({ + engineId, packageName: binaryPackage, version: pkg.pinnedVersion, + binaryVersion, platformKey: target.platformKey, integrity: dist.integrity, installedAt: now().toISOString(), + }, null, 2) + "\n"); + } + + const probe = await probeEngineInstallation(discoveryProfileFor(pkg, executablePath), { signal: options.signal, timeoutMs: 5000 }); + if (probe.status !== "installed") throw new ManagedInstallError(`managed_install_probe_failed:${probe.status}`); + return { engineId, version: pkg.pinnedVersion, executablePath, integrity: dist.integrity, installedAt: now().toISOString() }; + } finally { + await rm(root, { recursive: true, force: true }).catch(() => undefined); + } +} + +function discoveryProfileFor(pkg: ManagedEnginePackage, executablePath: string) { + return { + schemaVersion: 1 as const, + id: `managed:${pkg.engineId}`, + revision: 0, + status: "configured" as const, + configuration: { engineId: pkg.engineId, executablePath, authProfileId: "managed" }, + configurationFingerprint: "managed", + updatedAt: new Date(0).toISOString(), + }; +} diff --git a/packages/daemon/test/engine-lifecycle-routes.test.mjs b/packages/daemon/test/engine-lifecycle-routes.test.mjs new file mode 100644 index 000000000..b0f214c06 --- /dev/null +++ b/packages/daemon/test/engine-lifecycle-routes.test.mjs @@ -0,0 +1,83 @@ +import assert from "node:assert/strict"; +import { createServer } from "node:http"; +import { mkdtemp, rm } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import test from "node:test"; +import { EngineManagementFeature } from "../dist/features/execution-engines/feature.js"; + +async function fixture(t, options = {}) { + const root = await mkdtemp(join(tmpdir(), "ling-engine-routes-")); + t.after(() => rm(root, { recursive: true, force: true })); + const origin = "http://127.0.0.1:5175"; + const feature = new EngineManagementFeature({ userPaths: { rootDir: root }, allowedOrigins: [origin], ...options }); + const server = createServer((request, response) => void feature.handle(request, response)); + await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve)); + t.after(async () => { + await feature.close(); + server.closeAllConnections(); + await new Promise((resolve) => server.close(resolve)); + }); + const headers = { Origin: origin, "Content-Type": "application/json", Authorization: `Bearer ${feature.credentials.capability}`, "X-Ling-Engine-Csrf": feature.credentials.csrfToken }; + const request = async (path, method = "GET", body) => { + const response = await fetch(`http://127.0.0.1:${server.address().port}/execution-engines${path}`, { method, headers, body: body === undefined ? undefined : JSON.stringify(body) }); + return { status: response.status, body: await response.json().catch(() => undefined) }; + }; + return { request, headers, feature }; +} + +test("discovery route reports engine candidates to authorized principals", async (t) => { + const { request, headers } = await fixture(t); + const report = await request("/discovery"); + assert.equal(report.status, 200); + assert.equal(report.body.candidates.length, 4); + assert.ok(report.body.candidates.every((candidate) => typeof candidate.status === "string")); + const forbidden = await fetch(`http://127.0.0.1:1/execution-engines/discovery`).catch(() => undefined); + assert.equal(forbidden, undefined); + const noAuth = await (async () => { + const bare = await fixtureBareRequest(t); + return bare; + })(); + assert.ok(noAuth); +}); + +async function fixtureBareRequest(t) { + const root = await mkdtemp(join(tmpdir(), "ling-engine-routes-bare-")); + t.after(() => rm(root, { recursive: true, force: true })); + const feature = new EngineManagementFeature({ userPaths: { rootDir: root }, allowedOrigins: ["http://127.0.0.1:5175"] }); + const server = createServer((request, response) => void feature.handle(request, response)); + await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve)); + t.after(async () => { await feature.close(); await new Promise((resolve) => server.close(resolve)); }); + const response = await fetch(`http://127.0.0.1:${server.address().port}/execution-engines/discovery`); + return response.status; +} + +test("discovery rejects requests without authority", async (t) => { + const { feature } = await fixture(t); + assert.ok(feature); + const root = await mkdtemp(join(tmpdir(), "ling-engine-routes-noauth-")); + t.after(() => rm(root, { recursive: true, force: true })); + const f = new EngineManagementFeature({ userPaths: { rootDir: root }, allowedOrigins: ["http://127.0.0.1:5175"] }); + const server = createServer((request, response) => void f.handle(request, response)); + await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve)); + t.after(async () => { await f.close(); await new Promise((resolve) => server.close(resolve)); }); + const response = await fetch(`http://127.0.0.1:${server.address().port}/execution-engines/discovery`); + assert.ok([401, 403].includes(response.status)); +}); + +test("managed install transitions through the status route and refuses unsupported engines", async (t) => { + const installedPath = join(await mkdtemp(join(tmpdir(), "ling-engine-installed-")), "codex"); + const { request } = await fixture(t, { + lifecycle: { + install: async (engineId, userPaths) => ({ engineId, version: "0.164.0", executablePath: installedPath, integrity: "sha512-test", installedAt: new Date(0).toISOString() }), + }, + }); + const unsupported = await request("/kimi-acp/install", "POST", {}); + assert.equal(unsupported.status, 400); + const started = await request("/codex-app-server/install", "POST", {}); + assert.equal(started.status, 200); + assert.equal(started.body.install.phase, "installed"); + const status = await request("/codex-app-server/install"); + assert.equal(status.body.install.phase, "installed"); + assert.equal(status.body.install.executablePath, installedPath); +}); diff --git a/packages/daemon/test/engine-lifecycle.test.mjs b/packages/daemon/test/engine-lifecycle.test.mjs new file mode 100644 index 000000000..9b1d086e5 --- /dev/null +++ b/packages/daemon/test/engine-lifecycle.test.mjs @@ -0,0 +1,118 @@ +import assert from "node:assert/strict"; +import { mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import test from "node:test"; +import { createGzip } from "node:zlib"; +import { createHash } from "node:crypto"; +import { spawn } from "node:child_process"; +import { once } from "node:events"; +import { discoverEngines } from "../dist/features/execution-engines/engine-scanner.js"; +import { installManagedEngine, ManagedInstallError } from "../dist/features/execution-engines/managed-engine-installer.js"; + +const baseOptions = { resolveExecutable: async () => undefined }; + +test("discovery reports not_found for every engine when nothing is installed", async () => { + const report = await discoverEngines({ ...baseOptions, platform: "darwin" }); + assert.equal(report.candidates.length, 4); + for (const candidate of report.candidates) { + assert.equal(candidate.status, "not_found"); + assert.equal(typeof candidate.installable, "boolean"); + } + const codex = report.candidates.find((candidate) => candidate.engineId === "codex-app-server"); + assert.equal(codex?.installable, true); + const kimi = report.candidates.find((candidate) => candidate.engineId === "kimi-acp"); + assert.equal(kimi?.installable, false); + assert.ok(kimi?.manualGuidance); +}); + +test("discovery probes a found executable without inventing success", async (t) => { + const dir = await mkdtemp(join(tmpdir(), "ling-engine-scan-")); + t.after(() => rm(dir, { recursive: true, force: true })); + const fake = join(dir, "codex"); + await writeFile(fake, "#!/bin/sh\nexit 1\n", { mode: 0o755 }); + const report = await discoverEngines({ + platform: "darwin", probeTimeoutMs: 3000, + resolveExecutable: async (command) => (command === "codex" ? fake : undefined), + }); + const codex = report.candidates.find((candidate) => candidate.engineId === "codex-app-server"); + assert.equal(codex?.status, "detected"); + assert.equal(codex?.executablePath, fake); + assert.equal(codex?.version, undefined, "failing probe must not invent a version"); +}); + +async function packTarball(files) { + const dir = await mkdtemp(join(tmpdir(), "ling-pack-")); + try { + for (const [name, content] of Object.entries(files)) { + const target = join(dir, name); + await import("node:fs/promises").then((fs) => fs.mkdir(join(target, ".."), { recursive: true })); + await writeFile(target, content, name.endsWith("/bin/codex") || name === "package/claude" ? { mode: 0o755 } : undefined); + } + const out = join(dir, "pkg.tgz"); + await new Promise((resolve, reject) => { + const child = spawn("tar", ["-czf", out, "-C", dir, ...Object.keys(files)], { stdio: ["ignore", "ignore", "inherit"] }); + child.once("exit", (code) => (code === 0 ? resolve() : reject(new Error(`tar exit ${code}`)))); + child.once("error", reject); + }); + const bytes = await readFile(out); + return { bytes, integrity: `sha512-${createHash("sha512").update(bytes).digest("base64")}` }; + } finally { + // Keep the directory: callers read the tarball from it; cleanup happens with tmpdir churn. + } +} + +function registryFetch(metadata, tarball) { + return async (url) => { + if (url.includes("registry.npmjs.org") && url.endsWith(".tgz")) { + return new Response(tarball.bytes, { status: 200 }); + } + return new Response(JSON.stringify(metadata), { status: 200 }); + }; +} + +test("managed install downloads, verifies and probes the pinned platform binary", async (t) => { + const rootDir = await mkdtemp(join(tmpdir(), "ling-engine-root-")); + t.after(() => rm(rootDir, { recursive: true, force: true })); + const binary = String.raw`#!/bin/sh +echo "2.1.311 (Claude Code)" +`; + const tarball = await packTarball({ "package/claude": binary }); + const metadata = { dist: { tarball: "https://registry.npmjs.org/@anthropic-ai/claude-code-darwin-arm64/-/claude-code-darwin-arm64-2.1.311.tgz", integrity: tarball.integrity } }; + const result = await installManagedEngine("claude-agent-sdk", { rootDir }, { + platform: "darwin", arch: "arm64", fetchImpl: registryFetch(metadata, tarball), + }); + assert.equal(result.version, "2.1.311"); + assert.equal(result.integrity, tarball.integrity); + assert.ok(result.executablePath.endsWith(join("engines", "claude-agent-sdk", "2.1.311", "package", "claude"))); + const info = await stat(result.executablePath); + assert.ok(info.isFile()); + const probe = spawn(result.executablePath, [], { stdio: ["ignore", "pipe", "ignore"] }); + probe.stdout.once("data", () => undefined); + const output = []; + probe.stdout.on("data", (chunk) => output.push(chunk)); + const [code] = await once(probe, "exit"); + assert.equal(code, 0); + assert.match(Buffer.concat(output).toString("utf8"), /2\.1\.311/u); + const marker = JSON.parse(await readFile(join(rootDir, "engines", "claude-agent-sdk", "2.1.311", ".ling-managed.json"), "utf8")); + assert.equal(marker.integrity, tarball.integrity); +}); + +test("managed install refuses an integrity mismatch and leaves no partial install", async (t) => { + const rootDir = await mkdtemp(join(tmpdir(), "ling-engine-root-")); + t.after(() => rm(rootDir, { recursive: true, force: true })); + const tarball = await packTarball({ "package/claude": "#!/bin/sh\ntrue\n" }); + const metadata = { dist: { tarball: "https://registry.npmjs.org/x.tgz", integrity: "sha512-AAAA" } }; + await assert.rejects( + installManagedEngine("claude-agent-sdk", { rootDir }, { platform: "darwin", arch: "arm64", fetchImpl: registryFetch(metadata, tarball) }), + (error) => error instanceof ManagedInstallError && error.message === "managed_install_integrity_mismatch", + ); + await assert.rejects(stat(join(rootDir, "engines")), { code: "ENOENT" }); +}); + +test("managed install refuses engines without a managed layout", async () => { + await assert.rejects( + installManagedEngine("kimi-acp", { rootDir: "/tmp/ling-nowhere" }, {}), + /managed_install_unsupported_engine/u, + ); +}); diff --git a/packages/localization/catalogs/bg-BG.json b/packages/localization/catalogs/bg-BG.json index 3360e262b..ea35a6b3f 100644 --- a/packages/localization/catalogs/bg-BG.json +++ b/packages/localization/catalogs/bg-BG.json @@ -1,6 +1,6 @@ { "locale": "bg-BG", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Изтеглете генерирания резултат", "Download started": "Изтеглянето започна", "Downloaded {count} memories": "Изтеглени {count} спомени", + "Downloading...": "Изтегля се...", "Draft": "Чернова", "Draft a daily brief every morning from recent runs and approvals": "Всяка сутрин изготвяйте ежедневна кратка информация от последните изпълнения и одобрения", "Draft a slide outline from the current context.": "Начертайте контур на слайд от текущия контекст.", @@ -9761,6 +9766,7 @@ "Install only": "Само инсталиране", "Install package to use this plugin": "Инсталирайте пакета, за да използвате този плъгин", "Installation guide": "Ръководство за инсталиране", + "Installed": "Инсталиран", "Installed theme details could not be loaded.": "Подробностите за инсталираната тема не можаха да бъдат заредени.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Инсталираните теми не можаха да бъдат заредени. Ling използва вграден резервен вариант.", "Installing theme": "Темата се инсталира", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Използване на възможност в канал: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Използвайте съвети като колекции с много агенти за многократна употреба, след което ги импортирайте в канал чрез препратка.", "Use current configuration": "Използвайте текущата конфигурация", + "Use detected {version}": "Открито използване {version}", "Use existing folder": "Използвайте съществуваща папка", "Use for this teammate": "Използвайте за този съотборник", "Use full access for this conversation after explicit confirmation.": "Използвайте пълен достъп за този разговор след изрично потвърждение.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Проверете ключа, достъпа до акаунта, баланса и разрешението за модел за този доставчик.", "Verifying": "Проверка", "Verifying your identity": "Потвърждаване на вашата самоличност", + "Verifying...": "Проверка...", "Version": "Версия", "Version {number}": "Версия {number}", "Video": "видео", diff --git a/packages/localization/catalogs/bn-BD.json b/packages/localization/catalogs/bn-BD.json index a28ce2892..1d53420dc 100644 --- a/packages/localization/catalogs/bn-BD.json +++ b/packages/localization/catalogs/bn-BD.json @@ -1,6 +1,6 @@ { "locale": "bn-BD", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "উত্পন্ন ফলাফল ডাউনলোড করুন", "Download started": "ডাউনলোড শুরু হয়েছে", "Downloaded {count} memories": "ডাউনলোড করা {count} স্মৃতি", + "Downloading...": "ডাউনলোড হচ্ছে...", "Draft": "খসড়া", "Draft a daily brief every morning from recent runs and approvals": "সাম্প্রতিক রান এবং অনুমোদন থেকে প্রতিদিন সকালে একটি দৈনিক ব্রিফ তৈরি করুন", "Draft a slide outline from the current context.": "বর্তমান প্রেক্ষাপট থেকে একটি স্লাইড রূপরেখা খসড়া করুন।", @@ -9761,6 +9766,7 @@ "Install only": "শুধুমাত্র ইনস্টল করুন", "Install package to use this plugin": "এই প্লাগইন ব্যবহার করতে প্যাকেজ ইনস্টল করুন", "Installation guide": "ইনস্টলেশন গাইড", + "Installed": "ইনস্টল করা হয়েছে", "Installed theme details could not be loaded.": "ইনস্টল করা থিমের বিবরণ লোড করা যায়নি।", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ইনস্টল করা থিমগুলি লোড করা যায়নি৷ Ling একটি বিল্ট-ইন ফলব্যাক ব্যবহার করছে।", "Installing theme": "থিম ইনস্টল করা হচ্ছে", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "চ্যানেলে ক্ষমতা ব্যবহার করুন: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "কাউন্সিলগুলিকে পুনরায় ব্যবহারযোগ্য মাল্টি-এজেন্ট সংগ্রহ হিসাবে ব্যবহার করুন, তারপর রেফারেন্স দ্বারা একটি চ্যানেলে আমদানি করুন।", "Use current configuration": "বর্তমান কনফিগারেশন ব্যবহার করুন", + "Use detected {version}": "সনাক্ত করা {version} ব্যবহার করুন", "Use existing folder": "বিদ্যমান ফোল্ডার ব্যবহার করুন", "Use for this teammate": "এই সতীর্থ জন্য ব্যবহার করুন", "Use full access for this conversation after explicit confirmation.": "সুস্পষ্ট নিশ্চিতকরণের পরে এই কথোপকথনের জন্য সম্পূর্ণ অ্যাক্সেস ব্যবহার করুন।", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "এই প্রদানকারীর জন্য কী, অ্যাকাউন্ট অ্যাক্সেস, ব্যালেন্স এবং মডেলের অনুমতি যাচাই করুন।", "Verifying": "যাচাই করা হচ্ছে", "Verifying your identity": "আপনার পরিচয় যাচাই করা হচ্ছে", + "Verifying...": "যাচাই করা হচ্ছে...", "Version": "সংস্করণ", "Version {number}": "সংস্করণ {number}", "Video": "ভিডিও", diff --git a/packages/localization/catalogs/bs-BA.json b/packages/localization/catalogs/bs-BA.json index 152618297..9f66ef25a 100644 --- a/packages/localization/catalogs/bs-BA.json +++ b/packages/localization/catalogs/bs-BA.json @@ -1,6 +1,6 @@ { "locale": "bs-BA", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Preuzmite generirani rezultat", "Download started": "Preuzimanje je počelo", "Downloaded {count} memories": "Preuzeto {count} uspomena", + "Downloading...": "Preuzimanje...", "Draft": "Nacrt", "Draft a daily brief every morning from recent runs and approvals": "Svako jutro izradite dnevni sažetak iz nedavnih pregleda i odobrenja", "Draft a slide outline from the current context.": "Nacrtajte skicu slajda iz trenutnog konteksta.", @@ -9761,6 +9766,7 @@ "Install only": "Samo instalirajte", "Install package to use this plugin": "Instalirajte paket da koristite ovaj dodatak", "Installation guide": "Vodič za instalaciju", + "Installed": "Instalirano", "Installed theme details could not be loaded.": "Detalji instalirane teme se ne mogu učitati.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nije moguće učitati instalirane teme. Ling koristi ugrađeni rezervni.", "Installing theme": "Instaliranje teme", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Koristite mogućnost na kanalu: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Koristite savjete kao višeagentne kolekcije za višekratnu upotrebu, a zatim ih uvezite u kanal prema referenci.", "Use current configuration": "Koristite trenutnu konfiguraciju", + "Use detected {version}": "Otkriveno korištenje {version}", "Use existing folder": "Koristite postojeći folder", "Use for this teammate": "Koristi za ovog saigrača", "Use full access for this conversation after explicit confirmation.": "Koristite puni pristup za ovaj razgovor nakon izričite potvrde.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Provjerite ključ, pristup računu, stanje i dozvolu modela za ovog provajdera.", "Verifying": "Provjera", "Verifying your identity": "Provjera vašeg identiteta", + "Verifying...": "Provjera...", "Version": "Verzija", "Version {number}": "Verzija {number}", "Video": "Video", diff --git a/packages/localization/catalogs/ca-ES.json b/packages/localization/catalogs/ca-ES.json index 748d6d3df..6b456ff9e 100644 --- a/packages/localization/catalogs/ca-ES.json +++ b/packages/localization/catalogs/ca-ES.json @@ -1,6 +1,6 @@ { "locale": "ca-ES", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Baixeu el resultat generat", "Download started": "La descàrrega ha començat", "Downloaded {count} memories": "S'han descarregat {count} records", + "Downloading...": "S'està baixant...", "Draft": "Esborrany", "Draft a daily brief every morning from recent runs and approvals": "Elaborar un resum diari cada matí a partir de les execucions i aprovacions recents", "Draft a slide outline from the current context.": "Elaborar un esquema de diapositiva a partir del context actual.", @@ -9761,6 +9766,7 @@ "Install only": "Només instal·lar", "Install package to use this plugin": "Instal·leu el paquet per utilitzar aquest connector", "Installation guide": "Guia d'instal·lació", + "Installed": "Instal·lat", "Installed theme details could not be loaded.": "No s'han pogut carregar els detalls del tema instal·lat.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "No s'han pogut carregar els temes instal·lats. Ling està utilitzant una alternativa integrada.", "Installing theme": "S'està instal·lant el tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utilitza la capacitat al canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilitzeu els consells com a col·leccions multiagent reutilitzables i, a continuació, importeu-los a un canal per referència.", "Use current configuration": "Utilitzeu la configuració actual", + "Use detected {version}": "Ús detectat {version}", "Use existing folder": "Utilitzeu la carpeta existent", "Use for this teammate": "Utilitzeu-lo per a aquest company d'equip", "Use full access for this conversation after explicit confirmation.": "Utilitza l'accés total per a aquesta conversa després d'una confirmació explícita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifiqueu la clau, l'accés al compte, el saldo i el permís de model d'aquest proveïdor.", "Verifying": "S'està verificant", "Verifying your identity": "Verificant la teva identitat", + "Verifying...": "S'està verificant...", "Version": "Versió", "Version {number}": "Versió {number}", "Video": "Vídeo", diff --git a/packages/localization/catalogs/cs-CZ.json b/packages/localization/catalogs/cs-CZ.json index 9686169dc..11e1d97d2 100644 --- a/packages/localization/catalogs/cs-CZ.json +++ b/packages/localization/catalogs/cs-CZ.json @@ -1,6 +1,6 @@ { "locale": "cs-CZ", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Stáhnout vygenerovaný výsledek", "Download started": "Stahování zahájeno", "Downloaded {count} memories": "Staženo {count} pamětí", + "Downloading...": "Stahování...", "Draft": "Návrh", "Draft a daily brief every morning from recent runs and approvals": "Každé ráno vypracujte denní stručný přehled z posledních běhů a schválení", "Draft a slide outline from the current context.": "Vytvořte osnovu snímku z aktuálního kontextu.", @@ -9761,6 +9766,7 @@ "Install only": "Pouze nainstalovat", "Install package to use this plugin": "Chcete-li používat tento plugin, nainstalujte balíček", "Installation guide": "Průvodce instalací", + "Installed": "Instalováno", "Installed theme details could not be loaded.": "Podrobnosti nainstalovaného motivu nelze načíst.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nainstalované motivy nelze načíst. Ling používá vestavěnou zálohu.", "Installing theme": "Instalace motivu", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Použít funkci v kanálu: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Používejte rady jako opakovaně použitelné kolekce více agentů a poté je importujte do kanálu pomocí odkazu.", "Use current configuration": "Použít aktuální konfiguraci", + "Use detected {version}": "Zjištěno použití {version}", "Use existing folder": "Použít existující složku", "Use for this teammate": "Použijte pro tohoto spoluhráče", "Use full access for this conversation after explicit confirmation.": "Po výslovném potvrzení použijte pro tuto konverzaci plný přístup.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Ověřte klíč, přístup k účtu, zůstatek a oprávnění k modelu pro tohoto poskytovatele.", "Verifying": "Ověřování", "Verifying your identity": "Ověřování vaší identity", + "Verifying...": "Ověřování...", "Version": "Verze", "Version {number}": "Verze {number}", "Video": "Video", diff --git a/packages/localization/catalogs/da-DK.json b/packages/localization/catalogs/da-DK.json index 335070360..292d3328e 100644 --- a/packages/localization/catalogs/da-DK.json +++ b/packages/localization/catalogs/da-DK.json @@ -1,6 +1,6 @@ { "locale": "da-DK", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Download genereret resultat", "Download started": "Download startede", "Downloaded {count} memories": "Downloadede {count} minder", + "Downloading...": "Downloader...", "Draft": "Udkast", "Draft a daily brief every morning from recent runs and approvals": "Lav et udkast til en daglig brief hver morgen fra de seneste kørsler og godkendelser", "Draft a slide outline from the current context.": "Tegn et diaskontur fra den aktuelle kontekst.", @@ -9761,6 +9766,7 @@ "Install only": "Installer kun", "Install package to use this plugin": "Installer pakken for at bruge dette plugin", "Installation guide": "Installationsvejledning", + "Installed": "Installeret", "Installed theme details could not be loaded.": "Installerede temadetaljer kunne ikke indlæses.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installerede temaer kunne ikke indlæses. Ling bruger en indbygget fallback.", "Installing theme": "Installerer tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Brug kapacitet i kanal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Brug råd som genanvendelige samlinger med flere agenter, og importer dem derefter til en kanal ved reference.", "Use current configuration": "Brug den aktuelle konfiguration", + "Use detected {version}": "Brug registreret {version}", "Use existing folder": "Brug eksisterende mappe", "Use for this teammate": "Brug til denne holdkammerat", "Use full access for this conversation after explicit confirmation.": "Brug fuld adgang til denne samtale efter eksplicit bekræftelse.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Bekræft nøglen, kontoadgangen, saldoen og modeltilladelsen for denne udbyder.", "Verifying": "Bekræfter", "Verifying your identity": "Bekræfter din identitet", + "Verifying...": "Bekræfter...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Video", diff --git a/packages/localization/catalogs/de-DE.json b/packages/localization/catalogs/de-DE.json index 51145ce62..5da152fb0 100644 --- a/packages/localization/catalogs/de-DE.json +++ b/packages/localization/catalogs/de-DE.json @@ -1,6 +1,6 @@ { "locale": "de-DE", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Generiertes Ergebnis herunterladen", "Download started": "Download gestartet", "Downloaded {count} memories": "{count} Erinnerungen heruntergeladen", + "Downloading...": "Herunterladen...", "Draft": "Entwurf", "Draft a daily brief every morning from recent runs and approvals": "Erstellen Sie jeden Morgen ein tägliches Briefing anhand der letzten Läufe und Genehmigungen", "Draft a slide outline from the current context.": "Entwerfen Sie eine Foliengliederung aus dem aktuellen Kontext.", @@ -9761,6 +9766,7 @@ "Install only": "Nur installieren", "Install package to use this plugin": "Installieren Sie das Paket, um dieses Plugin zu verwenden", "Installation guide": "Installationsanleitung", + "Installed": "Installiert", "Installed theme details could not be loaded.": "Installierte Theme-Details konnten nicht geladen werden.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installierte Themes konnten nicht geladen werden. Ling verwendet einen integrierten Fallback.", "Installing theme": "Theme installieren", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Nutzungsmöglichkeit im Kanal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Verwenden Sie Räte als wiederverwendbare Multi-Agent-Sammlungen und importieren Sie sie dann per Referenz in einen Kanal.", "Use current configuration": "Aktuelle Konfiguration verwenden", + "Use detected {version}": "Verwendung erkannt {version}", "Use existing folder": "Vorhandenen Ordner verwenden", "Use for this teammate": "Für diesen Teamkollegen verwenden", "Use full access for this conversation after explicit confirmation.": "Nutzen Sie nach ausdrücklicher Bestätigung den vollen Zugriff für diese Konversation.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Überprüfen Sie den Schlüssel, den Kontozugriff, den Kontostand und die Modellberechtigung für diesen Anbieter.", "Verifying": "Verifizieren", "Verifying your identity": "Überprüfung Ihrer Identität", + "Verifying...": "Überprüfung...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Video", diff --git a/packages/localization/catalogs/el-GR.json b/packages/localization/catalogs/el-GR.json index e92b5d7e5..bf3f22669 100644 --- a/packages/localization/catalogs/el-GR.json +++ b/packages/localization/catalogs/el-GR.json @@ -1,6 +1,6 @@ { "locale": "el-GR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Λήψη του αποτελέσματος που δημιουργήθηκε", "Download started": "Η λήψη ξεκίνησε", "Downloaded {count} memories": "Λήφθηκαν {count} μνήμες", + "Downloading...": "Λήψη...", "Draft": "Προσχέδιο", "Draft a daily brief every morning from recent runs and approvals": "Σχεδιάστε μια καθημερινή σύντομη ενημέρωση κάθε πρωί από τις πρόσφατες εκτελέσεις και εγκρίσεις", "Draft a slide outline from the current context.": "Σχεδιάστε ένα περίγραμμα διαφάνειας από το τρέχον περιβάλλον.", @@ -9761,6 +9766,7 @@ "Install only": "Εγκατάσταση μόνο", "Install package to use this plugin": "Εγκαταστήστε το πακέτο για να χρησιμοποιήσετε αυτό το πρόσθετο", "Installation guide": "Οδηγός εγκατάστασης", + "Installed": "Εγκατεστημένο", "Installed theme details could not be loaded.": "Δεν ήταν δυνατή η φόρτωση των εγκατεστημένων λεπτομερειών θέματος.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Δεν ήταν δυνατή η φόρτωση των εγκατεστημένων θεμάτων. Το Ling χρησιμοποιεί ένα ενσωματωμένο εναλλακτικό.", "Installing theme": "Εγκατάσταση θέματος", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Χρήση δυνατότητας στο κανάλι: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Χρησιμοποιήστε τα συμβούλια ως επαναχρησιμοποιήσιμες συλλογές πολλαπλών πρακτόρων και, στη συνέχεια, εισαγάγετέ τα σε ένα κανάλι με αναφορά.", "Use current configuration": "Χρησιμοποιήστε την τρέχουσα διαμόρφωση", + "Use detected {version}": "Χρήση εντοπισθέντων {version}", "Use existing folder": "Χρησιμοποιήστε τον υπάρχοντα φάκελο", "Use for this teammate": "Χρησιμοποιήστε για αυτόν τον συμπαίκτη", "Use full access for this conversation after explicit confirmation.": "Χρησιμοποιήστε πλήρη πρόσβαση για αυτήν τη συνομιλία μετά από ρητή επιβεβαίωση.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Επαληθεύστε την άδεια κλειδιού, πρόσβασης λογαριασμού, υπολοίπου και μοντέλου για αυτόν τον πάροχο.", "Verifying": "Επαλήθευση", "Verifying your identity": "Επαλήθευση της ταυτότητάς σας", + "Verifying...": "Επαλήθευση...", "Version": "Εκδοχή", "Version {number}": "Έκδοση {number}", "Video": "Βίντεο", diff --git a/packages/localization/catalogs/en-US.json b/packages/localization/catalogs/en-US.json index c39d7d9f6..b7bc1e5b8 100644 --- a/packages/localization/catalogs/en-US.json +++ b/packages/localization/catalogs/en-US.json @@ -1,6 +1,6 @@ { "locale": "en-US", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Download generated result", "Download started": "Download started", "Downloaded {count} memories": "Downloaded {count} memories", + "Downloading...": "Downloading...", "Draft": "Draft", "Draft a daily brief every morning from recent runs and approvals": "Draft a daily brief every morning from recent runs and approvals", "Draft a slide outline from the current context.": "Draft a slide outline from the current context.", @@ -9761,6 +9766,7 @@ "Install only": "Install only", "Install package to use this plugin": "Install package to use this plugin", "Installation guide": "Installation guide", + "Installed": "Installed", "Installed theme details could not be loaded.": "Installed theme details could not be loaded.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installed themes could not be loaded. Ling is using a built-in fallback.", "Installing theme": "Installing theme", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Use capability in channel: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Use councils as reusable multi-agent collections, then import them into a channel by reference.", "Use current configuration": "Use current configuration", + "Use detected {version}": "Use detected {version}", "Use existing folder": "Use existing folder", "Use for this teammate": "Use for this teammate", "Use full access for this conversation after explicit confirmation.": "Use full access for this conversation after explicit confirmation.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verify the key, account access, balance, and model permission for this provider.", "Verifying": "Verifying", "Verifying your identity": "Verifying your identity", + "Verifying...": "Verifying...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Video", diff --git a/packages/localization/catalogs/es-419.json b/packages/localization/catalogs/es-419.json index 5cc2ccb04..659b7bee7 100644 --- a/packages/localization/catalogs/es-419.json +++ b/packages/localization/catalogs/es-419.json @@ -1,6 +1,6 @@ { "locale": "es-419", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Descargar resultado generado", "Download started": "Descarga iniciada", "Downloaded {count} memories": "Descargado {count} recuerdos", + "Downloading...": "Descargando...", "Draft": "Borrador", "Draft a daily brief every morning from recent runs and approvals": "Redacte un resumen diario cada mañana a partir de ejecuciones y aprobaciones recientes.", "Draft a slide outline from the current context.": "Redacte un esquema de diapositiva a partir del contexto actual.", @@ -9761,6 +9766,7 @@ "Install only": "Instalar solo", "Install package to use this plugin": "Instale el paquete para usar este complemento", "Installation guide": "guía de instalación", + "Installed": "Instalado", "Installed theme details could not be loaded.": "No se pudieron cargar los detalles del tema instalado.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "No se pudieron cargar los temas instalados. Ling utiliza un respaldo incorporado.", "Installing theme": "Instalando tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Capacidad de uso en el canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilice los consejos como colecciones reutilizables de múltiples agentes y luego impórtelos a un canal por referencia.", "Use current configuration": "Usar la configuración actual", + "Use detected {version}": "Uso detectado {version}", "Use existing folder": "Usar carpeta existente", "Use for this teammate": "Usar para este compañero de equipo", "Use full access for this conversation after explicit confirmation.": "Utilice acceso completo para esta conversación después de una confirmación explícita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifique la clave, el acceso a la cuenta, el saldo y el permiso del modelo para este proveedor.", "Verifying": "Verificando", "Verifying your identity": "Verificando tu identidad", + "Verifying...": "Verificando...", "Version": "Versión", "Version {number}": "Versión {number}", "Video": "Video", diff --git a/packages/localization/catalogs/es-ES.json b/packages/localization/catalogs/es-ES.json index 16fa32716..9280ee3dd 100644 --- a/packages/localization/catalogs/es-ES.json +++ b/packages/localization/catalogs/es-ES.json @@ -1,6 +1,6 @@ { "locale": "es-ES", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Descargar resultado generado", "Download started": "Descarga iniciada", "Downloaded {count} memories": "Descargado {count} recuerdos", + "Downloading...": "Descargando...", "Draft": "Borrador", "Draft a daily brief every morning from recent runs and approvals": "Redacte un resumen diario cada mañana a partir de ejecuciones y aprobaciones recientes.", "Draft a slide outline from the current context.": "Redacte un esquema de diapositiva a partir del contexto actual.", @@ -9761,6 +9766,7 @@ "Install only": "Instalar solo", "Install package to use this plugin": "Instale el paquete para usar este complemento", "Installation guide": "guía de instalación", + "Installed": "Instalado", "Installed theme details could not be loaded.": "No se pudieron cargar los detalles del tema instalado.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "No se pudieron cargar los temas instalados. Ling utiliza un respaldo incorporado.", "Installing theme": "Instalando tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Capacidad de uso en el canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilice los consejos como colecciones reutilizables de múltiples agentes y luego impórtelos a un canal por referencia.", "Use current configuration": "Usar la configuración actual", + "Use detected {version}": "Uso detectado {version}", "Use existing folder": "Usar carpeta existente", "Use for this teammate": "Usar para este compañero de equipo", "Use full access for this conversation after explicit confirmation.": "Utilice acceso completo para esta conversación después de una confirmación explícita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifique la clave, el acceso a la cuenta, el saldo y el permiso del modelo para este proveedor.", "Verifying": "Verificando", "Verifying your identity": "Verificando tu identidad", + "Verifying...": "Verificando...", "Version": "Versión", "Version {number}": "Versión {number}", "Video": "Video", diff --git a/packages/localization/catalogs/et-EE.json b/packages/localization/catalogs/et-EE.json index 05f590173..58f403a2a 100644 --- a/packages/localization/catalogs/et-EE.json +++ b/packages/localization/catalogs/et-EE.json @@ -1,6 +1,6 @@ { "locale": "et-EE", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Laadige alla loodud tulemus", "Download started": "Allalaadimine algas", "Downloaded {count} memories": "Allalaaditud {count} mälestused", + "Downloading...": "Allalaadimine...", "Draft": "Mustand", "Draft a daily brief every morning from recent runs and approvals": "Koostage igal hommikul igapäevane ülevaade viimastest jooksmistest ja kinnitustest", "Draft a slide outline from the current context.": "Joonistage praegusest kontekstist slaidi kontuur.", @@ -9761,6 +9766,7 @@ "Install only": "Installige ainult", "Install package to use this plugin": "Selle pistikprogrammi kasutamiseks installige pakett", "Installation guide": "Paigaldusjuhend", + "Installed": "Paigaldatud", "Installed theme details could not be loaded.": "Installitud teema üksikasju ei saanud laadida.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installitud teemasid ei saanud laadida. Ling kasutab sisseehitatud varuvarianti.", "Installing theme": "Teema installimine", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Kasuta võimalust kanalis: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Kasutage nõukogusid korduvkasutatavate mitme agendi kogudena, seejärel importige need viidetega kanalisse.", "Use current configuration": "Kasutage praegust konfiguratsiooni", + "Use detected {version}": "Kasutus tuvastatud {version}", "Use existing folder": "Kasutage olemasolevat kausta", "Use for this teammate": "Kasutage selle meeskonnakaaslase jaoks", "Use full access for this conversation after explicit confirmation.": "Kasutage selle vestluse jaoks täielikku juurdepääsu pärast selgesõnalist kinnitust.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Kinnitage selle teenusepakkuja võtme, konto juurdepääsu, saldo ja mudeli luba.", "Verifying": "Kontrollimine", "Verifying your identity": "Teie identiteedi kinnitamine", + "Verifying...": "Kinnitamine...", "Version": "Versioon", "Version {number}": "Versioon {number}", "Video": "Video", diff --git a/packages/localization/catalogs/fi-FI.json b/packages/localization/catalogs/fi-FI.json index bb668e3ef..b0d1c9b49 100644 --- a/packages/localization/catalogs/fi-FI.json +++ b/packages/localization/catalogs/fi-FI.json @@ -1,6 +1,6 @@ { "locale": "fi-FI", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Lataa luotu tulos", "Download started": "Lataus aloitettu", "Downloaded {count} memories": "Ladattu {count} muistoja", + "Downloading...": "Ladataan...", "Draft": "Luonnos", "Draft a daily brief every morning from recent runs and approvals": "Laadi joka aamu päivittäinen katsaus viimeaikaisista juoksuista ja hyväksynnöistä", "Draft a slide outline from the current context.": "Piirrä dian ääriviivat nykyisestä kontekstista.", @@ -9761,6 +9766,7 @@ "Install only": "Asenna vain", "Install package to use this plugin": "Asenna paketti käyttääksesi tätä laajennusta", "Installation guide": "Asennusopas", + "Installed": "Asennettu", "Installed theme details could not be loaded.": "Asennetun teeman tietoja ei voitu ladata.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Asennettuja teemoja ei voitu ladata. Ling käyttää sisäänrakennettua varavaihtoehtoa.", "Installing theme": "Teeman asennus", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Käytä ominaisuutta kanavalla: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Käytä neuvostoja uudelleenkäytettävinä usean agentin kokoelmina ja tuo ne sitten kanavaan viitteellä.", "Use current configuration": "Käytä nykyistä kokoonpanoa", + "Use detected {version}": "Käyttö havaittu {version}", "Use existing folder": "Käytä olemassa olevaa kansiota", "Use for this teammate": "Käytä tälle joukkuekaverille", "Use full access for this conversation after explicit confirmation.": "Käytä täydellistä käyttöoikeutta tähän keskusteluun nimenomaisen vahvistuksen jälkeen.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Vahvista tämän palveluntarjoajan avain, tilin käyttöoikeus, saldo ja mallilupa.", "Verifying": "Vahvistetaan", "Verifying your identity": "Vahvistaa henkilöllisyyttäsi", + "Verifying...": "Vahvistetaan...", "Version": "Versio", "Version {number}": "Versio {number}", "Video": "Video", diff --git a/packages/localization/catalogs/fr-CA.json b/packages/localization/catalogs/fr-CA.json index 2581791cb..4fe3ef277 100644 --- a/packages/localization/catalogs/fr-CA.json +++ b/packages/localization/catalogs/fr-CA.json @@ -1,6 +1,6 @@ { "locale": "fr-CA", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Télécharger le résultat généré", "Download started": "Le téléchargement a commencé", "Downloaded {count} memories": "Mémoires {count} téléchargées", + "Downloading...": "Téléchargement...", "Draft": "Ébauche", "Draft a daily brief every morning from recent runs and approvals": "Rédigez chaque matin un briefing quotidien à partir des exécutions et approbations récentes", "Draft a slide outline from the current context.": "Rédigez un plan de diapositive à partir du contexte actuel.", @@ -9761,6 +9766,7 @@ "Install only": "Installer uniquement", "Install package to use this plugin": "Installer le paquet pour utiliser ce plugiciel", "Installation guide": "Guide d'installation", + "Installed": "Installé", "Installed theme details could not be loaded.": "Les détails du thème installé n'ont pas pu être chargés.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Les thèmes installés n'ont pas pu être chargés. Ling utilise une solution de secours intégrée.", "Installing theme": "Installation du thème", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utiliser la capacité dans le canal : {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilisez les conseils comme collections multi-agents réutilisables, puis importez-les dans un canal par référence.", "Use current configuration": "Utiliser la configuration courante", + "Use detected {version}": "Utilisation détectée {version}", "Use existing folder": "Utiliser le dossier existant", "Use for this teammate": "Utiliser pour ce coéquipier", "Use full access for this conversation after explicit confirmation.": "Utilisez l'accès complet pour cette conversation après confirmation explicite.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Vérifiez la clé, l'accès au compte, le solde et l'autorisation de modèle pour ce fournisseur.", "Verifying": "Vérification", "Verifying your identity": "Vérifier votre identité", + "Verifying...": "Vérification...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Vidéo", diff --git a/packages/localization/catalogs/fr-FR.json b/packages/localization/catalogs/fr-FR.json index 1f387cc89..f2b3511e5 100644 --- a/packages/localization/catalogs/fr-FR.json +++ b/packages/localization/catalogs/fr-FR.json @@ -1,6 +1,6 @@ { "locale": "fr-FR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Télécharger le résultat généré", "Download started": "Téléchargement commencé", "Downloaded {count} memories": "Mémoires {count} téléchargées", + "Downloading...": "Téléchargement...", "Draft": "Brouillon", "Draft a daily brief every morning from recent runs and approvals": "Rédigez chaque matin un briefing quotidien à partir des exécutions et approbations récentes", "Draft a slide outline from the current context.": "Rédigez un plan de diapositive à partir du contexte actuel.", @@ -9761,6 +9766,7 @@ "Install only": "Installer uniquement", "Install package to use this plugin": "Installer le package pour utiliser ce plugin", "Installation guide": "Guide d'installation", + "Installed": "Installé", "Installed theme details could not be loaded.": "Les détails du thème installé n'ont pas pu être chargés.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Les thèmes installés n'ont pas pu être chargés. Ling utilise une solution de secours intégrée.", "Installing theme": "Installation du thème", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utiliser la capacité dans le canal : {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilisez les conseils comme collections multi-agents réutilisables, puis importez-les dans un canal par référence.", "Use current configuration": "Utiliser la configuration actuelle", + "Use detected {version}": "Utilisation détectée {version}", "Use existing folder": "Utiliser le dossier existant", "Use for this teammate": "Utiliser pour ce coéquipier", "Use full access for this conversation after explicit confirmation.": "Utilisez l'accès complet pour cette conversation après confirmation explicite.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Vérifiez la clé, l'accès au compte, le solde et l'autorisation de modèle pour ce fournisseur.", "Verifying": "Vérification", "Verifying your identity": "Vérifier votre identité", + "Verifying...": "Vérification...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Vidéo", diff --git a/packages/localization/catalogs/gu-IN.json b/packages/localization/catalogs/gu-IN.json index fdc08ce15..17a2eef94 100644 --- a/packages/localization/catalogs/gu-IN.json +++ b/packages/localization/catalogs/gu-IN.json @@ -1,6 +1,6 @@ { "locale": "gu-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "જનરેટ થયેલ પરિણામ ડાઉનલોડ કરો", "Download started": "ડાઉનલોડ શરૂ થયું", "Downloaded {count} memories": "ડાઉનલોડ કરેલ {count} સ્મૃતિઓ", + "Downloading...": "ડાઉનલોડ કરી રહ્યું છે...", "Draft": "ડ્રાફ્ટ", "Draft a daily brief every morning from recent runs and approvals": "તાજેતરના રન અને મંજૂરીઓમાંથી દરરોજ સવારે દૈનિક સંક્ષિપ્ત ડ્રાફ્ટ કરો", "Draft a slide outline from the current context.": "વર્તમાન સંદર્ભમાંથી સ્લાઇડની રૂપરેખા તૈયાર કરો.", @@ -9761,6 +9766,7 @@ "Install only": "ફક્ત ઇન્સ્ટોલ કરો", "Install package to use this plugin": "આ પ્લગઇનનો ઉપયોગ કરવા માટે પેકેજ ઇન્સ્ટોલ કરો", "Installation guide": "સ્થાપન માર્ગદર્શિકા", + "Installed": "ઇન્સ્ટોલ કરેલ", "Installed theme details could not be loaded.": "ઇન્સ્ટોલ કરેલી થીમ વિગતો લોડ કરી શકાઈ નથી.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ઇન્સ્ટોલ કરેલી થીમ્સ લોડ કરી શકાઈ નથી. Ling બિલ્ટ-ઇન ફોલબેકનો ઉપયોગ કરી રહ્યાં છે.", "Installing theme": "થીમ ઇન્સ્ટોલ કરી રહ્યું છે", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "ચેનલમાં ક્ષમતાનો ઉપયોગ કરો: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "કાઉન્સિલનો પુનઃઉપયોગ કરી શકાય તેવા મલ્ટી-એજન્ટ સંગ્રહ તરીકે ઉપયોગ કરો, પછી તેમને સંદર્ભ દ્વારા ચેનલમાં આયાત કરો.", "Use current configuration": "વર્તમાન રૂપરેખાંકનનો ઉપયોગ કરો", + "Use detected {version}": "શોધાયેલ {version} નો ઉપયોગ કરો", "Use existing folder": "હાલના ફોલ્ડરનો ઉપયોગ કરો", "Use for this teammate": "આ ટીમના સાથી માટે ઉપયોગ કરો", "Use full access for this conversation after explicit confirmation.": "સ્પષ્ટ પુષ્ટિ પછી આ વાતચીત માટે સંપૂર્ણ ઍક્સેસનો ઉપયોગ કરો.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "આ પ્રદાતા માટે કી, એકાઉન્ટ એક્સેસ, બેલેન્સ અને મોડેલની પરવાનગી ચકાસો.", "Verifying": "ચકાસણી કરી રહ્યું છે", "Verifying your identity": "તમારી ઓળખની ચકાસણી કરી રહ્યાં છીએ", + "Verifying...": "ચકાસી રહ્યું છે...", "Version": "સંસ્કરણ", "Version {number}": "સંસ્કરણ {number}", "Video": "વિડિયો", diff --git a/packages/localization/catalogs/hi-IN.json b/packages/localization/catalogs/hi-IN.json index 9b7ab8350..b68b344d5 100644 --- a/packages/localization/catalogs/hi-IN.json +++ b/packages/localization/catalogs/hi-IN.json @@ -1,6 +1,6 @@ { "locale": "hi-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "उत्पन्न परिणाम डाउनलोड करें", "Download started": "डाउनलोड प्रारंभ हुआ", "Downloaded {count} memories": "{count} यादें डाउनलोड की गईं", + "Downloading...": "डाउनलोड हो रहा है...", "Draft": "मसौदा", "Draft a daily brief every morning from recent runs and approvals": "हर सुबह हाल के रन और स्वीकृतियों का दैनिक विवरण तैयार करें", "Draft a slide outline from the current context.": "वर्तमान संदर्भ से एक स्लाइड की रूपरेखा तैयार करें।", @@ -9761,6 +9766,7 @@ "Install only": "केवल इंस्टॉल करें", "Install package to use this plugin": "इस प्लगइन का उपयोग करने के लिए पैकेज स्थापित करें", "Installation guide": "इंस्टालेशन गाइड", + "Installed": "स्थापित", "Installed theme details could not be loaded.": "स्थापित थीम विवरण लोड नहीं किया जा सका.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "स्थापित थीम लोड नहीं की जा सकीं. Ling बिल्ट-इन फ़ॉलबैक का उपयोग कर रहा है।", "Installing theme": "थीम स्थापित करना", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "चैनल में उपयोग क्षमता: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "परिषदों को पुन: प्रयोज्य बहु-एजेंट संग्रह के रूप में उपयोग करें, फिर उन्हें संदर्भ द्वारा एक चैनल में आयात करें।", "Use current configuration": "वर्तमान कॉन्फ़िगरेशन का उपयोग करें", + "Use detected {version}": "उपयोग पता चला {version}", "Use existing folder": "मौजूदा फ़ोल्डर का उपयोग करें", "Use for this teammate": "इस टीम के साथी के लिए उपयोग करें", "Use full access for this conversation after explicit confirmation.": "स्पष्ट पुष्टि के बाद इस वार्तालाप के लिए पूर्ण पहुंच का उपयोग करें।", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "इस प्रदाता के लिए कुंजी, खाता पहुंच, शेष राशि और मॉडल अनुमति सत्यापित करें।", "Verifying": "सत्यापन", "Verifying your identity": "आपकी पहचान सत्यापित की जा रही है", + "Verifying...": "सत्यापन किया जा रहा है...", "Version": "संस्करण", "Version {number}": "संस्करण {number}", "Video": "वीडियो", diff --git a/packages/localization/catalogs/hr-HR.json b/packages/localization/catalogs/hr-HR.json index ca6506686..c9a825932 100644 --- a/packages/localization/catalogs/hr-HR.json +++ b/packages/localization/catalogs/hr-HR.json @@ -1,6 +1,6 @@ { "locale": "hr-HR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Preuzmite generirani rezultat", "Download started": "Preuzimanje je počelo", "Downloaded {count} memories": "Preuzeto {count} sjećanja", + "Downloading...": "Preuzimanje...", "Draft": "Nacrt", "Draft a daily brief every morning from recent runs and approvals": "Svako jutro izradite dnevni sažetak iz nedavnih pokretanja i odobrenja", "Draft a slide outline from the current context.": "Nacrtajte obris slajda iz trenutnog konteksta.", @@ -9761,6 +9766,7 @@ "Install only": "Samo instaliranje", "Install package to use this plugin": "Instalirajte paket za korištenje ovog dodatka", "Installation guide": "Vodič za instalaciju", + "Installed": "instalirano", "Installed theme details could not be loaded.": "Nije moguće učitati pojedinosti instalirane teme.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Instalirane teme nisu se mogle učitati. Ling koristi ugrađenu zamjenu.", "Installing theme": "Instaliranje teme", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Mogućnost korištenja u kanalu: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Koristite savjete kao zbirke više agenata za višekratnu upotrebu, a zatim ih uvezite u kanal prema referencama.", "Use current configuration": "Koristi trenutnu konfiguraciju", + "Use detected {version}": "Upotreba otkrivena {version}", "Use existing folder": "Koristi postojeću mapu", "Use for this teammate": "Koristite za ovog suigrača", "Use full access for this conversation after explicit confirmation.": "Koristite puni pristup za ovaj razgovor nakon izričite potvrde.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Provjerite ključ, pristup računu, stanje i dopuštenje modela za ovog pružatelja usluga.", "Verifying": "Provjera", "Verifying your identity": "Provjera vašeg identiteta", + "Verifying...": "Provjera...", "Version": "Verzija", "Version {number}": "Verzija {number}", "Video": "Video", diff --git a/packages/localization/catalogs/hu-HU.json b/packages/localization/catalogs/hu-HU.json index f18ed58a8..a9d0b5428 100644 --- a/packages/localization/catalogs/hu-HU.json +++ b/packages/localization/catalogs/hu-HU.json @@ -1,6 +1,6 @@ { "locale": "hu-HU", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "A generált eredmény letöltése", "Download started": "A letöltés elindult", "Downloaded {count} memories": "Letöltött {count} memória", + "Downloading...": "Letöltés...", "Draft": "Piszkozat", "Draft a daily brief every morning from recent runs and approvals": "Minden reggel készítsen napi összefoglalót a legutóbbi futásokból és jóváhagyásokból", "Draft a slide outline from the current context.": "Készítsen diavázlatot az aktuális kontextusból.", @@ -9761,6 +9766,7 @@ "Install only": "Csak telepítse", "Install package to use this plugin": "Telepítse a csomagot a bővítmény használatához", "Installation guide": "Telepítési útmutató", + "Installed": "Telepítve", "Installed theme details could not be loaded.": "A telepített téma részleteit nem sikerült betölteni.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "A telepített témákat nem sikerült betölteni. A Ling beépített tartalékot használ.", "Installing theme": "Téma telepítése", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Használja a lehetőséget a csatornában: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Használja a tanácsokat újrafelhasználható többügynök-gyűjteményként, majd hivatkozással importálja őket egy csatornába.", "Use current configuration": "Az aktuális konfiguráció használata", + "Use detected {version}": "Használat észlelve {version}", "Use existing folder": "Használja a meglévő mappát", "Use for this teammate": "Használd ehhez a csapattárshoz", "Use full access for this conversation after explicit confirmation.": "Használjon teljes hozzáférést ehhez a beszélgetéshez kifejezett megerősítést követően.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Ellenőrizze a kulcsot, a fiókhozzáférést, az egyenleget és a modellengedélyt a szolgáltatóhoz.", "Verifying": "Ellenőrzés", "Verifying your identity": "Személyazonosságának ellenőrzése", + "Verifying...": "Ellenőrzés...", "Version": "Változat", "Version {number}": "Verzió {number}", "Video": "Videó", diff --git a/packages/localization/catalogs/hy-AM.json b/packages/localization/catalogs/hy-AM.json index 655ced761..3a18b23e6 100644 --- a/packages/localization/catalogs/hy-AM.json +++ b/packages/localization/catalogs/hy-AM.json @@ -1,6 +1,6 @@ { "locale": "hy-AM", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Ներբեռնեք ստեղծված արդյունքը", "Download started": "Ներբեռնումը սկսվեց", "Downloaded {count} memories": "Ներբեռնված {count} հիշողություններ", + "Downloading...": "Ներբեռնվում է...", "Draft": "Նախագիծ", "Draft a daily brief every morning from recent runs and approvals": "Ամեն առավոտ կազմեք օրական ամփոփագիր վերջին վազումներից և հաստատումներից", "Draft a slide outline from the current context.": "Ստեղծեք սլայդի ուրվագիծ ընթացիկ համատեքստից:", @@ -9761,6 +9766,7 @@ "Install only": "Տեղադրեք միայն", "Install package to use this plugin": "Տեղադրեք փաթեթ՝ այս փլագինը օգտագործելու համար", "Installation guide": "Տեղադրման ուղեցույց", + "Installed": "Տեղադրված է", "Installed theme details could not be loaded.": "Տեղադրված թեմայի մանրամասները չհաջողվեց բեռնել:", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Տեղադրված թեմաները չհաջողվեց բեռնել: Ling-ն օգտագործում է ներկառուցված հետադարձ կապ:", "Installing theme": "Թեմայի տեղադրում", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Օգտագործել հնարավորությունը ալիքում՝ {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Օգտագործեք խորհուրդները որպես բազմակի գործածելի հավաքածուներ, այնուհետև դրանք ներմուծեք ալիք՝ հղումով:", "Use current configuration": "Օգտագործեք ընթացիկ կոնֆիգուրացիան", + "Use detected {version}": "Օգտագործեք հայտնաբերված {version}", "Use existing folder": "Օգտագործեք գոյություն ունեցող թղթապանակը", "Use for this teammate": "Օգտագործեք այս թիմակցի համար", "Use full access for this conversation after explicit confirmation.": "Օգտագործեք այս խոսակցության ամբողջական մուտքը հստակ հաստատումից հետո:", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Ստուգեք այս մատակարարի բանալին, հաշվի մուտքը, մնացորդը և մոդելի թույլտվությունը:", "Verifying": "Ստուգում", "Verifying your identity": "Ձեր ինքնության հաստատում", + "Verifying...": "Ստուգվում է...", "Version": "Տարբերակ", "Version {number}": "Տարբերակ {number}", "Video": "Տեսանյութ", diff --git a/packages/localization/catalogs/id-ID.json b/packages/localization/catalogs/id-ID.json index 50b7f1e66..679157311 100644 --- a/packages/localization/catalogs/id-ID.json +++ b/packages/localization/catalogs/id-ID.json @@ -1,6 +1,6 @@ { "locale": "id-ID", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Unduh hasil yang dihasilkan", "Download started": "Pengunduhan dimulai", "Downloaded {count} memories": "Mengunduh {count} kenangan", + "Downloading...": "Mengunduh...", "Draft": "Draf", "Draft a daily brief every morning from recent runs and approvals": "Buat draf ringkasan harian setiap pagi dari proses dan persetujuan terkini", "Draft a slide outline from the current context.": "Draf kerangka slide dari konteks saat ini.", @@ -9761,6 +9766,7 @@ "Install only": "Instal saja", "Install package to use this plugin": "Instal paket untuk menggunakan plugin ini", "Installation guide": "Panduan instalasi", + "Installed": "Dipasang", "Installed theme details could not be loaded.": "Detail tema yang terpasang tidak dapat dimuat.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Tema yang diinstal tidak dapat dimuat. Ling menggunakan fallback bawaan.", "Installing theme": "Menginstal tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Gunakan kemampuan di saluran: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Gunakan dewan sebagai koleksi multi-agen yang dapat digunakan kembali, lalu impor ke saluran dengan referensi.", "Use current configuration": "Gunakan konfigurasi saat ini", + "Use detected {version}": "Gunakan terdeteksi {version}", "Use existing folder": "Gunakan folder yang ada", "Use for this teammate": "Gunakan untuk rekan satu tim ini", "Use full access for this conversation after explicit confirmation.": "Gunakan akses penuh untuk percakapan ini setelah konfirmasi eksplisit.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifikasi kunci, akses akun, saldo, dan izin model untuk penyedia ini.", "Verifying": "Memverifikasi", "Verifying your identity": "Memverifikasi identitas Anda", + "Verifying...": "Memverifikasi...", "Version": "Versi", "Version {number}": "Versi {number}", "Video": "Video", diff --git a/packages/localization/catalogs/is-IS.json b/packages/localization/catalogs/is-IS.json index a3b082558..ed71240ee 100644 --- a/packages/localization/catalogs/is-IS.json +++ b/packages/localization/catalogs/is-IS.json @@ -1,6 +1,6 @@ { "locale": "is-IS", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Sæktu myndaða niðurstöðu", "Download started": "Niðurhal byrjað", "Downloaded {count} memories": "Sótt {count} minningar", + "Downloading...": "Sækir...", "Draft": "Drög", "Draft a daily brief every morning from recent runs and approvals": "Gerðu drög að daglegu yfirliti á hverjum morgni úr nýlegum keyrslum og samþykktum", "Draft a slide outline from the current context.": "Gerðu drög að útlínu skyggnu úr núverandi samhengi.", @@ -9761,6 +9766,7 @@ "Install only": "Aðeins setja upp", "Install package to use this plugin": "Settu upp pakka til að nota þetta viðbót", "Installation guide": "Uppsetningarleiðbeiningar", + "Installed": "Uppsett", "Installed theme details could not be loaded.": "Ekki var hægt að hlaða uppsettum þemaupplýsingum.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Ekki var hægt að hlaða uppsettum þemum. Ling notar innbyggða fallback.", "Installing theme": "Setur upp þema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Notaðu getu í rás: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Notaðu ráð sem endurnýtanlegt safn með mörgum umboðsmönnum, flyttu þau síðan inn í rás með tilvísun.", "Use current configuration": "Notaðu núverandi stillingar", + "Use detected {version}": "Notaðu greint {version}", "Use existing folder": "Notaðu núverandi möppu", "Use for this teammate": "Notaðu fyrir þennan liðsfélaga", "Use full access for this conversation after explicit confirmation.": "Notaðu fullan aðgang fyrir þetta samtal eftir skýra staðfestingu.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Staðfestu lykil, aðgang að reikningi, stöðu og líkanheimild fyrir þessa þjónustuveitu.", "Verifying": "Staðfestir", "Verifying your identity": "Staðfestir auðkenni þitt", + "Verifying...": "Staðfestir...", "Version": "Útgáfa", "Version {number}": "Útgáfa {number}", "Video": "Myndband", diff --git a/packages/localization/catalogs/it-IT.json b/packages/localization/catalogs/it-IT.json index 3421c5db9..139caf761 100644 --- a/packages/localization/catalogs/it-IT.json +++ b/packages/localization/catalogs/it-IT.json @@ -1,6 +1,6 @@ { "locale": "it-IT", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Scarica il risultato generato", "Download started": "Download avviato", "Downloaded {count} memories": "Memorie {count} scaricate", + "Downloading...": "Download in corso...", "Draft": "Bozza", "Draft a daily brief every morning from recent runs and approvals": "Redigere un brief giornaliero ogni mattina dalle corse e approvazioni recenti", "Draft a slide outline from the current context.": "Disegna una struttura della diapositiva dal contesto corrente.", @@ -9761,6 +9766,7 @@ "Install only": "Solo installazione", "Install package to use this plugin": "Installa il pacchetto per utilizzare questo plugin", "Installation guide": "Guida all'installazione", + "Installed": "Installato", "Installed theme details could not be loaded.": "Impossibile caricare i dettagli del tema installato.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Impossibile caricare i temi installati. Ling utilizza un fallback integrato.", "Installing theme": "Installazione del tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utilizza funzionalità nel canale: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilizza i consigli come raccolte multi-agente riutilizzabili, quindi importali in un canale per riferimento.", "Use current configuration": "Utilizza la configurazione corrente", + "Use detected {version}": "Utilizza rilevato {version}", "Use existing folder": "Utilizza la cartella esistente", "Use for this teammate": "Utilizzare per questo compagno di squadra", "Use full access for this conversation after explicit confirmation.": "Utilizza l'accesso completo per questa conversazione dopo la conferma esplicita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifica la chiave, l'accesso all'account, il saldo e l'autorizzazione del modello per questo fornitore.", "Verifying": "Verifica", "Verifying your identity": "Verifica della tua identità", + "Verifying...": "Verifica...", "Version": "Versione", "Version {number}": "Versione {number}", "Video": "Video", diff --git a/packages/localization/catalogs/ja-JP.json b/packages/localization/catalogs/ja-JP.json index ddd72e77b..3af797ffb 100644 --- a/packages/localization/catalogs/ja-JP.json +++ b/packages/localization/catalogs/ja-JP.json @@ -1,6 +1,6 @@ { "locale": "ja-JP", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "生成された結果をダウンロードする", "Download started": "ダウンロードが開始されました", "Downloaded {count} memories": "ダウンロードした{count}の思い出", + "Downloading...": "ダウンロード中...", "Draft": "下書き", "Draft a daily brief every morning from recent runs and approvals": "最近の実行と承認から毎朝、日次概要の草案を作成します", "Draft a slide outline from the current context.": "現在のコンテキストからスライドのアウトラインを下書きします。", @@ -9761,6 +9766,7 @@ "Install only": "インストールのみ", "Install package to use this plugin": "このプラグインを使用するにはパッケージをインストールします", "Installation guide": "インストールガイド", + "Installed": "インストール済み", "Installed theme details could not be loaded.": "インストールされているテーマの詳細を読み込むことができませんでした。", "Installed themes could not be loaded. Ling is using a built-in fallback.": "インストールされているテーマを読み込むことができませんでした。 Ling は組み込みフォールバックを使用しています。", "Installing theme": "テーマのインストール", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "チャネルでの機能の使用: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "カウンシルを再利用可能なマルチエージェント コレクションとして使用し、参照によってチャネルにインポートします。", "Use current configuration": "現在の構成を使用する", + "Use detected {version}": "検出された{version}を使用", "Use existing folder": "既存のフォルダーを使用する", "Use for this teammate": "このチームメイトに使用します", "Use full access for this conversation after explicit confirmation.": "明示的に確認した後、この会話にはフルアクセスを使用してください。", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "このプロバイダーのキー、アカウント アクセス、残高、モデル権限を確認します。", "Verifying": "検証中", "Verifying your identity": "本人確認をする", + "Verifying...": "確認中...", "Version": "バージョン", "Version {number}": "バージョン{number}", "Video": "ビデオ", diff --git a/packages/localization/catalogs/ka-GE.json b/packages/localization/catalogs/ka-GE.json index c73d33e00..595223c10 100644 --- a/packages/localization/catalogs/ka-GE.json +++ b/packages/localization/catalogs/ka-GE.json @@ -1,6 +1,6 @@ { "locale": "ka-GE", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "ჩამოტვირთეთ გენერირებული შედეგი", "Download started": "ჩამოტვირთვა დაიწყო", "Downloaded {count} memories": "ჩამოტვირთული {count} მოგონებები", + "Downloading...": "მიმდინარეობს ჩამოტვირთვა...", "Draft": "პროექტი", "Draft a daily brief every morning from recent runs and approvals": "შეადგინეთ ყოველდღიური მოკლე შინაარსი ყოველ დილით ბოლო გაშვებებიდან და დამტკიცებებიდან", "Draft a slide outline from the current context.": "შეადგინეთ სლაიდის მონახაზი მიმდინარე კონტექსტიდან.", @@ -9761,6 +9766,7 @@ "Install only": "მხოლოდ დააინსტალირეთ", "Install package to use this plugin": "დააინსტალირეთ პაკეტი ამ მოდულის გამოსაყენებლად", "Installation guide": "ინსტალაციის სახელმძღვანელო", + "Installed": "დაყენებულია", "Installed theme details could not be loaded.": "დაინსტალირებული თემის დეტალები ვერ ჩაიტვირთა.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "დაინსტალირებული თემების ჩატვირთვა ვერ მოხერხდა. Ling იყენებს ჩაშენებულ ჩანაცვლებას.", "Installing theme": "მიმდინარეობს თემის ინსტალაცია", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "არხზე გამოყენების შესაძლებლობა: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "გამოიყენეთ საბჭოები, როგორც მრავალჯერადი გამოყენების მრავალაგენტიანი კოლექციები, შემდეგ შემოიტანეთ ისინი არხში მითითებით.", "Use current configuration": "გამოიყენეთ მიმდინარე კონფიგურაცია", + "Use detected {version}": "გამოვლენილი {version} გამოყენება", "Use existing folder": "გამოიყენეთ არსებული საქაღალდე", "Use for this teammate": "გამოიყენეთ ამ თანაგუნდელისთვის", "Use full access for this conversation after explicit confirmation.": "გამოიყენეთ სრული წვდომა ამ მიმოწერისთვის აშკარა დადასტურების შემდეგ.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "დაადასტურეთ გასაღები, ანგარიშზე წვდომა, ბალანსი და მოდელის ნებართვა ამ პროვაიდერისთვის.", "Verifying": "გადამოწმება", "Verifying your identity": "თქვენი ვინაობის დადასტურება", + "Verifying...": "დადასტურება...", "Version": "ვერსია", "Version {number}": "ვერსია {number}", "Video": "ვიდეო", diff --git a/packages/localization/catalogs/kn-IN.json b/packages/localization/catalogs/kn-IN.json index 2f7ef88d7..d9b249a75 100644 --- a/packages/localization/catalogs/kn-IN.json +++ b/packages/localization/catalogs/kn-IN.json @@ -1,6 +1,6 @@ { "locale": "kn-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "ರಚಿಸಿದ ಫಲಿತಾಂಶವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ", "Download started": "ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭವಾಗಿದೆ", "Downloaded {count} memories": "{count} ನೆನಪುಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "Downloading...": "ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ...", "Draft": "ಕರಡು", "Draft a daily brief every morning from recent runs and approvals": "ಇತ್ತೀಚಿನ ರನ್‌ಗಳು ಮತ್ತು ಅನುಮೋದನೆಗಳಿಂದ ಪ್ರತಿದಿನ ಬೆಳಿಗ್ಗೆ ಒಂದು ದೈನಂದಿನ ಸಂಕ್ಷಿಪ್ತತೆಯನ್ನು ರಚಿಸಿ", "Draft a slide outline from the current context.": "ಪ್ರಸ್ತುತ ಸಂದರ್ಭದಿಂದ ಸ್ಲೈಡ್ ರೂಪರೇಖೆಯನ್ನು ರಚಿಸಿ.", @@ -9761,6 +9766,7 @@ "Install only": "ಸ್ಥಾಪಿಸಿ ಮಾತ್ರ", "Install package to use this plugin": "ಈ ಪ್ಲಗಿನ್ ಅನ್ನು ಬಳಸಲು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ", "Installation guide": "ಅನುಸ್ಥಾಪನ ಮಾರ್ಗದರ್ಶಿ", + "Installed": "ಸ್ಥಾಪಿಸಲಾಗಿದೆ", "Installed theme details could not be loaded.": "ಸ್ಥಾಪಿಸಲಾದ ಥೀಮ್ ವಿವರಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ಸ್ಥಾಪಿಸಲಾದ ಥೀಮ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ. Ling ಅಂತರ್ನಿರ್ಮಿತ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ.", "Installing theme": "ಥೀಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "ಚಾನಲ್‌ನಲ್ಲಿ ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಸಿ: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "ಕೌನ್ಸಿಲ್‌ಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಬಹು-ಏಜೆಂಟ್ ಸಂಗ್ರಹಗಳಾಗಿ ಬಳಸಿ, ನಂತರ ಅವುಗಳನ್ನು ಉಲ್ಲೇಖದ ಮೂಲಕ ಚಾನಲ್‌ಗೆ ಆಮದು ಮಾಡಿ.", "Use current configuration": "ಪ್ರಸ್ತುತ ಸಂರಚನೆಯನ್ನು ಬಳಸಿ", + "Use detected {version}": "ಪತ್ತೆಯಾದ {version} ಬಳಸಿ", "Use existing folder": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೋಲ್ಡರ್ ಬಳಸಿ", "Use for this teammate": "ಈ ತಂಡದ ಸಹ ಆಟಗಾರನಿಗೆ ಬಳಸಿ", "Use full access for this conversation after explicit confirmation.": "ಸ್ಪಷ್ಟವಾದ ದೃಢೀಕರಣದ ನಂತರ ಈ ಸಂಭಾಷಣೆಗೆ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ಬಳಸಿ.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "ಈ ಪೂರೈಕೆದಾರರಿಗೆ ಕೀ, ಖಾತೆ ಪ್ರವೇಶ, ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು ಮಾದರಿ ಅನುಮತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ.", "Verifying": "ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ", "Verifying your identity": "ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ", + "Verifying...": "ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...", "Version": "ಆವೃತ್ತಿ", "Version {number}": "ಆವೃತ್ತಿ {number}", "Video": "ವೀಡಿಯೊ", diff --git a/packages/localization/catalogs/ko-KR.json b/packages/localization/catalogs/ko-KR.json index 6d28f10cc..b402c042f 100644 --- a/packages/localization/catalogs/ko-KR.json +++ b/packages/localization/catalogs/ko-KR.json @@ -1,6 +1,6 @@ { "locale": "ko-KR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "생성된 결과 다운로드", "Download started": "다운로드가 시작되었습니다", "Downloaded {count} memories": "{count} 추억을 다운로드했습니다.", + "Downloading...": "다운로드 중...", "Draft": "초안", "Draft a daily brief every morning from recent runs and approvals": "매일 아침 최근 실행 및 승인을 바탕으로 일일 브리핑 초안을 작성합니다.", "Draft a slide outline from the current context.": "현재 컨텍스트에서 슬라이드 개요의 초안을 작성합니다.", @@ -9761,6 +9766,7 @@ "Install only": "설치만 가능", "Install package to use this plugin": "이 플러그인을 사용하려면 패키지를 설치하세요.", "Installation guide": "설치 가이드", + "Installed": "설치됨", "Installed theme details could not be loaded.": "설치된 테마 세부정보를 로드할 수 없습니다.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "설치된 테마를 로드할 수 없습니다. Ling는 내장된 대체 기능을 사용하고 있습니다.", "Installing theme": "테마 설치 중", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "채널의 기능 사용: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "의회를 재사용 가능한 다중 에이전트 컬렉션으로 사용한 다음 참조를 통해 채널로 가져옵니다.", "Use current configuration": "현재 구성 사용", + "Use detected {version}": "감지된 {version} 사용", "Use existing folder": "기존 폴더 사용", "Use for this teammate": "이 팀원에게 사용", "Use full access for this conversation after explicit confirmation.": "명시적인 확인 후 이 대화에 대한 전체 액세스 권한을 사용하세요.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "이 공급자에 대한 키, 계정 액세스, 잔액 및 모델 권한을 확인하세요.", "Verifying": "확인 중", "Verifying your identity": "신원 확인 중", + "Verifying...": "확인 중...", "Version": "버전", "Version {number}": "버전 {number}", "Video": "동영상", diff --git a/packages/localization/catalogs/lv-LV.json b/packages/localization/catalogs/lv-LV.json index c070bce44..ffb7f8f65 100644 --- a/packages/localization/catalogs/lv-LV.json +++ b/packages/localization/catalogs/lv-LV.json @@ -1,6 +1,6 @@ { "locale": "lv-LV", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Lejupielādēt ģenerēto rezultātu", "Download started": "Lejupielāde sākta", "Downloaded {count} memories": "Lejupielādētas {count} atmiņas", + "Downloading...": "Notiek lejupielāde...", "Draft": "Melnraksts", "Draft a daily brief every morning from recent runs and approvals": "Katru rītu sastādiet ikdienas īsu pārskatu no nesenajiem skrējieniem un apstiprinājumiem", "Draft a slide outline from the current context.": "Uzmetiet slaida kontūru no pašreizējā konteksta.", @@ -9761,6 +9766,7 @@ "Install only": "Tikai instalēt", "Install package to use this plugin": "Instalējiet pakotni, lai izmantotu šo spraudni", "Installation guide": "Uzstādīšanas rokasgrāmata", + "Installed": "Uzstādīts", "Installed theme details could not be loaded.": "Nevarēja ielādēt instalētā motīva informāciju.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nevarēja ielādēt instalētos motīvus. Ling izmanto iebūvētu atkāpšanos.", "Installing theme": "Motīva instalēšana", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Izmantojiet iespēju kanālā: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Izmantojiet padomes kā atkārtoti lietojamas vairāku aģentu kolekcijas, pēc tam importējiet tās kanālā pēc atsauces.", "Use current configuration": "Izmantojiet pašreizējo konfigurāciju", + "Use detected {version}": "Izmantots noteikts {version}", "Use existing folder": "Izmantojiet esošo mapi", "Use for this teammate": "Izmantojiet šim komandas biedram", "Use full access for this conversation after explicit confirmation.": "Izmantojiet pilnu piekļuvi šai sarunai pēc nepārprotama apstiprinājuma.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Pārbaudiet šī pakalpojumu sniedzēja atslēgu, piekļuvi kontam, bilanci un modeļa atļauju.", "Verifying": "Pārbauda", "Verifying your identity": "Jūsu identitātes pārbaude", + "Verifying...": "Notiek pārbaude...", "Version": "Versija", "Version {number}": "Versija {number}", "Video": "Video", diff --git a/packages/localization/catalogs/mk-MK.json b/packages/localization/catalogs/mk-MK.json index 29bef85f0..8c62572a1 100644 --- a/packages/localization/catalogs/mk-MK.json +++ b/packages/localization/catalogs/mk-MK.json @@ -1,6 +1,6 @@ { "locale": "mk-MK", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Преземете го генерираниот резултат", "Download started": "Преземањето започна", "Downloaded {count} memories": "Преземени {count} мемории", + "Downloading...": "Се презема...", "Draft": "Нацрт", "Draft a daily brief every morning from recent runs and approvals": "Нацртувајте дневен краток преглед секое утро од неодамнешните работи и одобренија", "Draft a slide outline from the current context.": "Нацртај нацрт на слајд од тековниот контекст.", @@ -9761,6 +9766,7 @@ "Install only": "Инсталирајте само", "Install package to use this plugin": "Инсталирајте пакет за да го користите овој приклучок", "Installation guide": "Водич за инсталација", + "Installed": "Инсталиран", "Installed theme details could not be loaded.": "Деталите за инсталираната тема не може да се вчитаат.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Инсталираните теми не може да се вчитаат. Ling користи вграден резервен бек.", "Installing theme": "Се инсталира тема", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Користете ја способноста во каналот: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Користете совети како повеќекратни збирки со повеќе агенти, а потоа увезете ги во канал преку референца.", "Use current configuration": "Користете ја тековната конфигурација", + "Use detected {version}": "Користете откриени {version}", "Use existing folder": "Користете ја постоечката папка", "Use for this teammate": "Користете за овој соиграч", "Use full access for this conversation after explicit confirmation.": "Користете целосен пристап за овој разговор по експлицитна потврда.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Потврдете го клучот, пристапот до сметката, состојбата и дозволата за модел за овој давател.", "Verifying": "Се потврдува", "Verifying your identity": "Се потврдува вашиот идентитет", + "Verifying...": "Се потврдува...", "Version": "Верзија", "Version {number}": "Верзија {number}", "Video": "Видео", diff --git a/packages/localization/catalogs/mr-IN.json b/packages/localization/catalogs/mr-IN.json index bcb7cc50f..f1ebb9544 100644 --- a/packages/localization/catalogs/mr-IN.json +++ b/packages/localization/catalogs/mr-IN.json @@ -1,6 +1,6 @@ { "locale": "mr-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "व्युत्पन्न परिणाम डाउनलोड करा", "Download started": "डाउनलोड सुरू झाले", "Downloaded {count} memories": "डाउनलोड केलेल्या {count} आठवणी", + "Downloading...": "डाउनलोड करत आहे...", "Draft": "मसुदा", "Draft a daily brief every morning from recent runs and approvals": "अलीकडील धावा आणि मंजूरी वरून दररोज सकाळी दैनिक संक्षिप्त मसुदा तयार करा", "Draft a slide outline from the current context.": "वर्तमान संदर्भातून एक स्लाइड बाह्यरेखा तयार करा.", @@ -9761,6 +9766,7 @@ "Install only": "फक्त स्थापित करा", "Install package to use this plugin": "हे प्लगइन वापरण्यासाठी पॅकेज स्थापित करा", "Installation guide": "स्थापना मार्गदर्शक", + "Installed": "स्थापित केले", "Installed theme details could not be loaded.": "स्थापित थीम तपशील लोड करणे शक्य नाही.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "स्थापित केलेल्या थीम लोड केल्या जाऊ शकल्या नाहीत. Ling अंगभूत फॉलबॅक वापरत आहे.", "Installing theme": "थीम स्थापित करत आहे", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "चॅनेलमध्ये क्षमता वापरा: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "पुन्हा वापरता येण्याजोग्या मल्टी-एजंट कलेक्शन म्हणून कौन्सिल वापरा, नंतर संदर्भानुसार चॅनेलमध्ये आयात करा.", "Use current configuration": "वर्तमान कॉन्फिगरेशन वापरा", + "Use detected {version}": "डिटेक्टेड {version} वापरा", "Use existing folder": "विद्यमान फोल्डर वापरा", "Use for this teammate": "या टीममेटसाठी वापरा", "Use full access for this conversation after explicit confirmation.": "स्पष्ट पुष्टीकरणानंतर या संभाषणासाठी पूर्ण प्रवेश वापरा.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "या प्रदात्यासाठी की, खाते प्रवेश, शिल्लक आणि मॉडेल परवानगी सत्यापित करा.", "Verifying": "पडताळणी करत आहे", "Verifying your identity": "तुमची ओळख पडताळत आहे", + "Verifying...": "पडताळणी करत आहे...", "Version": "आवृत्ती", "Version {number}": "आवृत्ती {number}", "Video": "व्हिडिओ", diff --git a/packages/localization/catalogs/ms-MY.json b/packages/localization/catalogs/ms-MY.json index f37471310..513976929 100644 --- a/packages/localization/catalogs/ms-MY.json +++ b/packages/localization/catalogs/ms-MY.json @@ -1,6 +1,6 @@ { "locale": "ms-MY", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Muat turun hasil yang dijana", "Download started": "Muat turun bermula", "Downloaded {count} memories": "Kenangan {count} dimuat turun", + "Downloading...": "Memuat turun...", "Draft": "Draf", "Draft a daily brief every morning from recent runs and approvals": "Draf taklimat harian setiap pagi daripada larian dan kelulusan baru-baru ini", "Draft a slide outline from the current context.": "Draf garis besar slaid daripada konteks semasa.", @@ -9761,6 +9766,7 @@ "Install only": "Pasang sahaja", "Install package to use this plugin": "Pasang pakej untuk menggunakan pemalam ini", "Installation guide": "Panduan pemasangan", + "Installed": "Dipasang", "Installed theme details could not be loaded.": "Butiran tema yang dipasang tidak dapat dimuatkan.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Tema yang dipasang tidak dapat dimuatkan. Ling menggunakan sandaran terbina dalam.", "Installing theme": "Memasang tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Gunakan keupayaan dalam saluran: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Gunakan majlis sebagai koleksi berbilang ejen boleh guna semula, kemudian importnya ke saluran melalui rujukan.", "Use current configuration": "Gunakan konfigurasi semasa", + "Use detected {version}": "Gunakan {version} yang dikesan", "Use existing folder": "Gunakan folder sedia ada", "Use for this teammate": "Gunakan untuk rakan sepasukan ini", "Use full access for this conversation after explicit confirmation.": "Gunakan akses penuh untuk perbualan ini selepas pengesahan yang jelas.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Sahkan kunci, akses akaun, baki dan kebenaran model untuk pembekal ini.", "Verifying": "Mengesahkan", "Verifying your identity": "Mengesahkan identiti anda", + "Verifying...": "Mengesahkan...", "Version": "Versi", "Version {number}": "Versi {number}", "Video": "Video", diff --git a/packages/localization/catalogs/my-MM.json b/packages/localization/catalogs/my-MM.json index e619af508..70b809c23 100644 --- a/packages/localization/catalogs/my-MM.json +++ b/packages/localization/catalogs/my-MM.json @@ -1,6 +1,6 @@ { "locale": "my-MM", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "ဒေါင်းလုဒ်လုပ်ထားသောရလဒ်", "Download started": "ဒေါင်းလုဒ်စတင်ပါပြီ။", "Downloaded {count} memories": "{count} အမှတ်တရများကို ဒေါင်းလုဒ်လုပ်ထားသည်။", + "Downloading...": "ဒေါင်းလုဒ်လုပ်နေသည်...", "Draft": "အကြမ်း", "Draft a daily brief every morning from recent runs and approvals": "မကြာသေးမီက လုပ်ဆောင်မှုများနှင့် အတည်ပြုချက်များမှ နေ့စဉ်အကျဉ်းချုပ်ကို နံနက်တိုင်း ရေးဆွဲပါ။", "Draft a slide outline from the current context.": "လက်ရှိအခြေအနေမှ ဆလိုက်ကောက်ကြောင်းကို ရေးဆွဲပါ။", @@ -9761,6 +9766,7 @@ "Install only": "တပ်ဆင်ရန်သာ", "Install package to use this plugin": "ဤပလပ်အင်ကို အသုံးပြုရန် ပက်ကေ့ဂျ်ကို ထည့်သွင်းပါ။", "Installation guide": "တပ်ဆင်ခြင်းလမ်းညွှန်", + "Installed": "တပ်ဆင်ထားသည်။", "Installed theme details could not be loaded.": "ထည့်သွင်းထားသည့် အပြင်အဆင်အသေးစိတ်များကို တင်၍မရပါ။", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ထည့်သွင်းထားသည့် အပြင်အဆင်များကို တင်၍မရပါ။ Ling သည် တပ်ဆင်ထားသော လှည့်ကွက်ကို အသုံးပြုနေသည်။", "Installing theme": "အပြင်အဆင်ကို ထည့်သွင်းခြင်း။", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "ချန်နယ်တွင် စွမ်းဆောင်ရည်ကို အသုံးပြုပါ- {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "ကောင်စီများကို ပြန်သုံးနိုင်သော ကိုယ်စားလှယ်အများအပြားစုစည်းမှုများအဖြစ် အသုံးပြုပါ၊ ထို့နောက် ၎င်းတို့ကို အကိုးအကားဖြင့် ချန်နယ်တစ်ခုသို့ ထည့်သွင်းပါ။", "Use current configuration": "လက်ရှိဖွဲ့စည်းပုံကိုသုံးပါ။", + "Use detected {version}": "တွေ့ရှိထားသော {version} အသုံးပြုပါ", "Use existing folder": "ရှိပြီးသား folder ကိုသုံးပါ။", "Use for this teammate": "ဒီအသင်းဖော်အတွက် သုံးပါ။", "Use full access for this conversation after explicit confirmation.": "ပြတ်သားစွာ အတည်ပြုပြီးနောက် ဤစကားဝိုင်းအတွက် အပြည့်အဝအသုံးပြုခွင့်ကို အသုံးပြုပါ။", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "ဤဝန်ဆောင်မှုပေးသူအတွက် သော့၊ အကောင့်ဝင်ရောက်ခွင့်၊ လက်ကျန်ငွေနှင့် မော်ဒယ်ခွင့်ပြုချက်ကို အတည်ပြုပါ။", "Verifying": "စိစစ်ခြင်း။", "Verifying your identity": "သင်၏အထောက်အထားကို အတည်ပြုခြင်း။", + "Verifying...": "စစ်ဆေးနေသည်...", "Version": "ဗားရှင်း", "Version {number}": "ဗားရှင်း {number}", "Video": "ဗီဒီယို", diff --git a/packages/localization/catalogs/nb-NO.json b/packages/localization/catalogs/nb-NO.json index 4bd85d71c..350d02b0f 100644 --- a/packages/localization/catalogs/nb-NO.json +++ b/packages/localization/catalogs/nb-NO.json @@ -1,6 +1,6 @@ { "locale": "nb-NO", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Last ned generert resultat", "Download started": "Nedlasting startet", "Downloaded {count} memories": "Nedlastede {count} minner", + "Downloading...": "Laster ned...", "Draft": "Utkast", "Draft a daily brief every morning from recent runs and approvals": "Lag en daglig oversikt hver morgen fra de siste løpene og godkjenningene", "Draft a slide outline from the current context.": "Tegn en lysbildekontur fra gjeldende kontekst.", @@ -9761,6 +9766,7 @@ "Install only": "Bare installer", "Install package to use this plugin": "Installer pakken for å bruke denne plugin", "Installation guide": "Installasjonsveiledning", + "Installed": "Installert", "Installed theme details could not be loaded.": "Installerte temadetaljer kunne ikke lastes inn.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installerte temaer kunne ikke lastes. Ling bruker en innebygd reserve.", "Installing theme": "Installerer tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Bruk evne i kanal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Bruk råd som gjenbrukbare samlinger med flere agenter, og importer dem deretter til en kanal ved referanse.", "Use current configuration": "Bruk gjeldende konfigurasjon", + "Use detected {version}": "Bruk oppdaget {version}", "Use existing folder": "Bruk eksisterende mappe", "Use for this teammate": "Bruk for denne lagkameraten", "Use full access for this conversation after explicit confirmation.": "Bruk full tilgang for denne samtalen etter eksplisitt bekreftelse.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Bekreft nøkkelen, kontotilgangen, saldoen og modelltillatelsen for denne leverandøren.", "Verifying": "Bekrefter", "Verifying your identity": "Bekrefter identiteten din", + "Verifying...": "Bekrefter...", "Version": "Versjon", "Version {number}": "Versjon {number}", "Video": "Video", diff --git a/packages/localization/catalogs/nl-NL.json b/packages/localization/catalogs/nl-NL.json index 206a66999..db3b9f48f 100644 --- a/packages/localization/catalogs/nl-NL.json +++ b/packages/localization/catalogs/nl-NL.json @@ -1,6 +1,6 @@ { "locale": "nl-NL", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Gegenereerd resultaat downloaden", "Download started": "Het downloaden is gestart", "Downloaded {count} memories": "{count}-geheugens gedownload", + "Downloading...": "Downloaden...", "Draft": "Voorlopige versie", "Draft a daily brief every morning from recent runs and approvals": "Maak elke ochtend een dagelijkse briefing van recente runs en goedkeuringen", "Draft a slide outline from the current context.": "Maak een diaoverzicht op basis van de huidige context.", @@ -9761,6 +9766,7 @@ "Install only": "Alleen installeren", "Install package to use this plugin": "Installeer het pakket om deze plug-in te gebruiken", "Installation guide": "Installatiehandleiding", + "Installed": "Geïnstalleerd", "Installed theme details could not be loaded.": "Geïnstalleerde themadetails kunnen niet worden geladen.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Geïnstalleerde thema's konden niet worden geladen. Ling gebruikt een ingebouwde fallback.", "Installing theme": "Thema installeren", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Gebruiksmogelijkheid in kanaal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Gebruik raden als herbruikbare multi-agentcollecties en importeer ze vervolgens via referentie in een kanaal.", "Use current configuration": "Gebruik de huidige configuratie", + "Use detected {version}": "Gebruik gedetecteerd {version}", "Use existing folder": "Gebruik bestaande map", "Use for this teammate": "Gebruik voor deze teamgenoot", "Use full access for this conversation after explicit confirmation.": "Gebruik volledige toegang voor dit gesprek na expliciete bevestiging.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Controleer de sleutel, accounttoegang, saldo en modelrechten voor deze provider.", "Verifying": "Verifiëren", "Verifying your identity": "Het verifiëren van uw identiteit", + "Verifying...": "Verifiëren...", "Version": "Versie", "Version {number}": "Versie {number}", "Video": "Video", diff --git a/packages/localization/catalogs/pl-PL.json b/packages/localization/catalogs/pl-PL.json index 2eb6fef2d..7056c7bfb 100644 --- a/packages/localization/catalogs/pl-PL.json +++ b/packages/localization/catalogs/pl-PL.json @@ -1,6 +1,6 @@ { "locale": "pl-PL", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Pobierz wygenerowany wynik", "Download started": "Pobieranie rozpoczęte", "Downloaded {count} memories": "Pobrano wspomnienia {count}", + "Downloading...": "Ściąganie...", "Draft": "Projekt", "Draft a daily brief every morning from recent runs and approvals": "Codziennie rano twórz codzienny brief na podstawie ostatnich przebiegów i zatwierdzeń", "Draft a slide outline from the current context.": "Przygotuj konspekt slajdu na podstawie bieżącego kontekstu.", @@ -9761,6 +9766,7 @@ "Install only": "Zainstaluj tylko", "Install package to use this plugin": "Zainstaluj pakiet, aby używać tej wtyczki", "Installation guide": "Instrukcja instalacji", + "Installed": "Zainstalowany", "Installed theme details could not be loaded.": "Nie można załadować szczegółów zainstalowanego motywu.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nie można załadować zainstalowanych motywów. Ling używa wbudowanego powrotu.", "Installing theme": "Instalowanie motywu", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Użyj możliwości w kanale: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Używaj rad jako wieloagentowych kolekcji wielokrotnego użytku, a następnie importuj je do kanału przez odniesienie.", "Use current configuration": "Użyj bieżącej konfiguracji", + "Use detected {version}": "Wykryto użycie {version}", "Use existing folder": "Użyj istniejącego folderu", "Use for this teammate": "Użyj dla tego członka drużyny", "Use full access for this conversation after explicit confirmation.": "Użyj pełnego dostępu do tej rozmowy po wyraźnym potwierdzeniu.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Sprawdź klucz, dostęp do konta, saldo i uprawnienia modelu dla tego dostawcy.", "Verifying": "Weryfikacja", "Verifying your identity": "Weryfikacja Twojej tożsamości", + "Verifying...": "Weryfikuję...", "Version": "Wersja", "Version {number}": "Wersja {number}", "Video": "Wideo", diff --git a/packages/localization/catalogs/pt-BR.json b/packages/localization/catalogs/pt-BR.json index 0b9258155..355a018c5 100644 --- a/packages/localization/catalogs/pt-BR.json +++ b/packages/localization/catalogs/pt-BR.json @@ -1,6 +1,6 @@ { "locale": "pt-BR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Baixar resultado gerado", "Download started": "Download iniciado", "Downloaded {count} memories": "Memórias {count} baixadas", + "Downloading...": "Baixando...", "Draft": "Rascunho", "Draft a daily brief every morning from recent runs and approvals": "Elabore um resumo diário todas as manhãs a partir de execuções e aprovações recentes", "Draft a slide outline from the current context.": "Elabore um esboço de slide a partir do contexto atual.", @@ -9761,6 +9766,7 @@ "Install only": "Instalar apenas", "Install package to use this plugin": "Instale o pacote para usar este plugin", "Installation guide": "Guia de instalação", + "Installed": "Instalado", "Installed theme details could not be loaded.": "Os detalhes do tema instalado não puderam ser carregados.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Os temas instalados não puderam ser carregados. Ling está usando um substituto integrado.", "Installing theme": "Instalando tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Use capacidade no canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Use conselhos como coleções multiagentes reutilizáveis ​​e, em seguida, importe-os para um canal por referência.", "Use current configuration": "Usar configuração atual", + "Use detected {version}": "Uso detectado {version}", "Use existing folder": "Usar pasta existente", "Use for this teammate": "Use para este companheiro de equipe", "Use full access for this conversation after explicit confirmation.": "Use acesso total para esta conversa após confirmação explícita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifique a chave, o acesso à conta, o saldo e a permissão do modelo para este provedor.", "Verifying": "Verificando", "Verifying your identity": "Verificando sua identidade", + "Verifying...": "Verificando...", "Version": "Versão", "Version {number}": "Versão {number}", "Video": "Vídeo", diff --git a/packages/localization/catalogs/pt-PT.json b/packages/localization/catalogs/pt-PT.json index 59f69d619..d9d42e3a7 100644 --- a/packages/localization/catalogs/pt-PT.json +++ b/packages/localization/catalogs/pt-PT.json @@ -1,6 +1,6 @@ { "locale": "pt-PT", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Baixar resultado gerado", "Download started": "Download iniciado", "Downloaded {count} memories": "Memórias {count} descarregadas", + "Downloading...": "A descarregar...", "Draft": "Rascunho", "Draft a daily brief every morning from recent runs and approvals": "Elabore um resumo diário todas as manhãs a partir das execuções e aprovações recentes", "Draft a slide outline from the current context.": "Elabore um esboço de diapositivo a partir do contexto atual.", @@ -9761,6 +9766,7 @@ "Install only": "Instalar apenas", "Install package to use this plugin": "Instale o pacote para utilizar este plugin", "Installation guide": "Guia de instalação", + "Installed": "Instalado", "Installed theme details could not be loaded.": "Os detalhes do tema instalado não puderam ser carregados.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Os temas instalados não puderam ser carregados. Ling está a utilizar um substituto integrado.", "Installing theme": "Instalando tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utilização capacidade no canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilize conselhos como coleções multiagentes reutilizáveis ​​e, em seguida, importe-os para um canal por referência.", "Use current configuration": "Usar configuração atual", + "Use detected {version}": "Utilização detectada {version}", "Use existing folder": "Usar pasta existente", "Use for this teammate": "Use para este companheiro de equipa", "Use full access for this conversation after explicit confirmation.": "Utilize o acesso total para esta conversa após confirmação explícita.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifique a chave, o acesso à conta, o saldo e a permissão do modelo para este fornecedor.", "Verifying": "Verificando", "Verifying your identity": "Verificando a sua identidade", + "Verifying...": "Verificando...", "Version": "Versão", "Version {number}": "Versão {number}", "Video": "Vídeo", diff --git a/packages/localization/catalogs/ro-RO.json b/packages/localization/catalogs/ro-RO.json index cb7478beb..bafc59ae8 100644 --- a/packages/localization/catalogs/ro-RO.json +++ b/packages/localization/catalogs/ro-RO.json @@ -1,6 +1,6 @@ { "locale": "ro-RO", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Descărcați rezultatul generat", "Download started": "Descărcarea a început", "Downloaded {count} memories": "Amintiri {count} descărcate", + "Downloading...": "Se descarcă...", "Draft": "Proiect", "Draft a daily brief every morning from recent runs and approvals": "Redactați un rezumat zilnic în fiecare dimineață din runde și aprobări recente", "Draft a slide outline from the current context.": "Schițați un contur de diapozitiv din contextul curent.", @@ -9761,6 +9766,7 @@ "Install only": "Instalați numai", "Install package to use this plugin": "Instalați pachetul pentru a utiliza acest plugin", "Installation guide": "Ghid de instalare", + "Installed": "Instalat", "Installed theme details could not be loaded.": "Detaliile temei instalate nu au putut fi încărcate.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Temele instalate nu au putut fi încărcate. Ling folosește o rezervă încorporată.", "Installing theme": "Instalarea temei", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Utilizați capacitatea în canal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Utilizați consiliile ca colecții reutilizabile cu mai mulți agenți, apoi importați-le într-un canal prin referință.", "Use current configuration": "Utilizați configurația curentă", + "Use detected {version}": "Utilizați detectat {version}", "Use existing folder": "Utilizați folderul existent", "Use for this teammate": "Utilizați pentru acest coechipier", "Use full access for this conversation after explicit confirmation.": "Utilizați accesul complet pentru această conversație după confirmarea explicită.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verificați cheia, accesul la cont, soldul și permisiunea de model pentru acest furnizor.", "Verifying": "Se verifică", "Verifying your identity": "Verificarea identității dvs", + "Verifying...": "Se verifică...", "Version": "Versiune", "Version {number}": "Versiunea {number}", "Video": "Video", diff --git a/packages/localization/catalogs/ru-RU.json b/packages/localization/catalogs/ru-RU.json index 8dd49b72d..2801559d2 100644 --- a/packages/localization/catalogs/ru-RU.json +++ b/packages/localization/catalogs/ru-RU.json @@ -1,6 +1,6 @@ { "locale": "ru-RU", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Скачать сгенерированный результат", "Download started": "Загрузка началась", "Downloaded {count} memories": "Скачано воспоминаний {count}.", + "Downloading...": "Загрузка...", "Draft": "Черновик", "Draft a daily brief every morning from recent runs and approvals": "Каждое утро составляйте ежедневную сводку на основе недавних запусков и утверждений.", "Draft a slide outline from the current context.": "Нарисуйте схему слайда, исходя из текущего контекста.", @@ -9761,6 +9766,7 @@ "Install only": "Только установить", "Install package to use this plugin": "Установите пакет, чтобы использовать этот плагин", "Installation guide": "Руководство по установке", + "Installed": "Установлено", "Installed theme details could not be loaded.": "Не удалось загрузить сведения об установленной теме.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Установленные темы не удалось загрузить. Ling использует встроенный резервный вариант.", "Installing theme": "Установка темы", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Использовать возможность в канале: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Используйте советы как многократно используемые мультиагентные коллекции, а затем импортируйте их в канал по ссылке.", "Use current configuration": "Использовать текущую конфигурацию", + "Use detected {version}": "Обнаружено использование {version}", "Use existing folder": "Использовать существующую папку", "Use for this teammate": "Используйте для этого товарища по команде", "Use full access for this conversation after explicit confirmation.": "Используйте полный доступ к этому разговору после явного подтверждения.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Проверьте ключ, доступ к учетной записи, баланс и разрешение модели для этого поставщика.", "Verifying": "Проверка", "Verifying your identity": "Проверка вашей личности", + "Verifying...": "Проверка...", "Version": "Версия", "Version {number}": "Версия {number}", "Video": "Видео", diff --git a/packages/localization/catalogs/sk-SK.json b/packages/localization/catalogs/sk-SK.json index 29a6c37ac..6eb0378c5 100644 --- a/packages/localization/catalogs/sk-SK.json +++ b/packages/localization/catalogs/sk-SK.json @@ -1,6 +1,6 @@ { "locale": "sk-SK", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Stiahnite si vygenerovaný výsledok", "Download started": "Sťahovanie začalo", "Downloaded {count} memories": "Stiahnuté pamäte {count}", + "Downloading...": "Sťahuje sa...", "Draft": "Návrh", "Draft a daily brief every morning from recent runs and approvals": "Každé ráno si vypracujte denný prehľad z nedávnych spustení a schválení", "Draft a slide outline from the current context.": "Nakreslite osnovu snímky z aktuálneho kontextu.", @@ -9761,6 +9766,7 @@ "Install only": "Iba nainštalovať", "Install package to use this plugin": "Ak chcete používať tento doplnok, nainštalujte balík", "Installation guide": "Návod na inštaláciu", + "Installed": "Nainštalované", "Installed theme details could not be loaded.": "Podrobnosti nainštalovanej témy sa nepodarilo načítať.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nainštalované motívy sa nepodarilo načítať. Ling používa vstavaný núdzový režim.", "Installing theme": "Inštaluje sa téma", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Použiť schopnosť v kanáli: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Použite rady ako opakovane použiteľné kolekcie viacerých agentov a potom ich importujte do kanála podľa referencie.", "Use current configuration": "Použiť aktuálnu konfiguráciu", + "Use detected {version}": "Zistené použitie {version}", "Use existing folder": "Použiť existujúci priečinok", "Use for this teammate": "Použiť pre tohto spoluhráča", "Use full access for this conversation after explicit confirmation.": "Po výslovnom potvrdení použite úplný prístup pre túto konverzáciu.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Overte kľúč, prístup k účtu, zostatok a povolenie modelu pre tohto poskytovateľa.", "Verifying": "Overuje sa", "Verifying your identity": "Overenie vašej identity", + "Verifying...": "Overuje sa...", "Version": "Verzia", "Version {number}": "Verzia {number}", "Video": "Video", diff --git a/packages/localization/catalogs/sl-SI.json b/packages/localization/catalogs/sl-SI.json index a41af0814..e108116d5 100644 --- a/packages/localization/catalogs/sl-SI.json +++ b/packages/localization/catalogs/sl-SI.json @@ -1,6 +1,6 @@ { "locale": "sl-SI", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Prenesite ustvarjeni rezultat", "Download started": "Prenos se je začel", "Downloaded {count} memories": "Preneseni spomini {count}", + "Downloading...": "Prenašanje ...", "Draft": "Osnutek", "Draft a daily brief every morning from recent runs and approvals": "Vsako jutro pripravite osnutek dnevnega povzetka iz nedavnih izvedb in odobritev", "Draft a slide outline from the current context.": "Narišite osnutek diapozitiva iz trenutnega konteksta.", @@ -9761,6 +9766,7 @@ "Install only": "Samo namestitev", "Install package to use this plugin": "Namestite paket za uporabo tega vtičnika", "Installation guide": "Navodila za namestitev", + "Installed": "Nameščeno", "Installed theme details could not be loaded.": "Podrobnosti nameščene teme ni bilo mogoče naložiti.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Nameščenih tem ni bilo mogoče naložiti. Ling uporablja vgrajeno nadomestno možnost.", "Installing theme": "Namestitev teme", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Uporaba zmogljivosti v kanalu: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Uporabite nasvete kot zbirke več agentov za večkratno uporabo, nato pa jih uvozite v kanal po sklicu.", "Use current configuration": "Uporabi trenutno konfiguracijo", + "Use detected {version}": "Zaznana uporaba {version}", "Use existing folder": "Uporabi obstoječo mapo", "Use for this teammate": "Uporabite za tega soigralca", "Use full access for this conversation after explicit confirmation.": "Po izrecni potrditvi uporabite polni dostop za ta pogovor.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Preverite ključ, dostop do računa, stanje in dovoljenje modela za tega ponudnika.", "Verifying": "Preverjanje", "Verifying your identity": "Preverjanje vaše identitete", + "Verifying...": "Preverjanje ...", "Version": "Različica", "Version {number}": "Različica {number}", "Video": "Video", diff --git a/packages/localization/catalogs/so-SO.json b/packages/localization/catalogs/so-SO.json index b3a16617c..bb319e4a0 100644 --- a/packages/localization/catalogs/so-SO.json +++ b/packages/localization/catalogs/so-SO.json @@ -1,6 +1,6 @@ { "locale": "so-SO", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Soo deji natiijada la soo saaray", "Download started": "Soo dejinta ayaa bilaabatay", "Downloaded {count} memories": "La soo dejiyay {count} xasuus", + "Downloading...": "Soo dejinaya...", "Draft": "Qabyo", "Draft a daily brief every morning from recent runs and approvals": "Qabyo qoraal kooban oo maalinle ah subax kasta laga bilaabo socodsiinta iyo oggolaanshaha dhow", "Draft a slide outline from the current context.": "Ka soo saar dulmar dulmar ah xaaladda hadda jirta.", @@ -9761,6 +9766,7 @@ "Install only": "Ku rakib kaliya", "Install package to use this plugin": "Ku rakib xirmo si aad u isticmaasho plugingan", "Installation guide": "Hagaha rakibidda", + "Installed": "La rakibay", "Installed theme details could not be loaded.": "Faahfaahinta mawduuca la rakibay lama rari karo", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Mawduucyada la rakibay lama rari karo Ling wuxuu isticmaalayaa dib-u-dhac ku dhex jira.", "Installing theme": "Ku rakibida mawduuca", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Isticmaal kartida kanaalka: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "U isticmaal golaha sidii ururin wakiillo badan oo dib loo isticmaali karo, ka dibna u soo geliya kanaalka tixraac ahaan.", "Use current configuration": "Isticmaal qaabeynta hadda", + "Use detected {version}": "Isticmaalka la ogaaday {version}", "Use existing folder": "Isticmaal faylka jira", "Use for this teammate": "U isticmaal saaxiibkan", "Use full access for this conversation after explicit confirmation.": "Isticmaal gelitaan buuxa wada hadalkan ka dib xaqiijin cad.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Xaqiiji furaha, gelitaanka akoontiga, hadhaaga, iyo moodelka ogolaanshaha adeeg bixiyahan.", "Verifying": "Xaqiijinta", "Verifying your identity": "Xaqiijinta aqoonsigaaga", + "Verifying...": "Xaqiijinaya...", "Version": "Nooca", "Version {number}": "Nooca {number}", "Video": "Video", diff --git a/packages/localization/catalogs/sq-AL.json b/packages/localization/catalogs/sq-AL.json index c76b9c98e..3af5cf3cd 100644 --- a/packages/localization/catalogs/sq-AL.json +++ b/packages/localization/catalogs/sq-AL.json @@ -1,6 +1,6 @@ { "locale": "sq-AL", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Shkarkoni rezultatin e krijuar", "Download started": "Shkarkimi filloi", "Downloaded {count} memories": "Shkarkuar {count} kujtime", + "Downloading...": "Po shkarkohet...", "Draft": "Drafti", "Draft a daily brief every morning from recent runs and approvals": "Hartoni një përmbledhje ditore çdo mëngjes nga ekzekutimet dhe miratimet e fundit", "Draft a slide outline from the current context.": "Hartoni një skicë rrëshqitjeje nga konteksti aktual.", @@ -9761,6 +9766,7 @@ "Install only": "Instaloni vetëm", "Install package to use this plugin": "Instaloni paketën për të përdorur këtë shtojcë", "Installation guide": "Udhëzues instalimi", + "Installed": "Instaluar", "Installed theme details could not be loaded.": "Detajet e instaluara të temës nuk mund të ngarkoheshin.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Temat e instaluara nuk mund të ngarkoheshin. Ling po përdor një rezervë të integruar.", "Installing theme": "Instalimi i temës", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Përdorni aftësinë në kanal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Përdorni këshillat si koleksione me shumë agjentë të ripërdorshëm, më pas importojini ato në një kanal me referencë.", "Use current configuration": "Përdorni konfigurimin aktual", + "Use detected {version}": "Përdorimi i zbuluar {version}", "Use existing folder": "Përdorni dosjen ekzistuese", "Use for this teammate": "Përdorni për këtë shok ekipi", "Use full access for this conversation after explicit confirmation.": "Përdorni aksesin e plotë për këtë bisedë pas konfirmimit të qartë.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifiko çelësin, aksesin në llogari, gjendjen dhe lejen e modelit për këtë ofrues.", "Verifying": "Duke verifikuar", "Verifying your identity": "Verifikimi i identitetit tuaj", + "Verifying...": "Po verifikohet...", "Version": "Versioni", "Version {number}": "Versioni {number}", "Video": "Video", diff --git a/packages/localization/catalogs/sr-RS.json b/packages/localization/catalogs/sr-RS.json index 78ba375ce..3e50e2993 100644 --- a/packages/localization/catalogs/sr-RS.json +++ b/packages/localization/catalogs/sr-RS.json @@ -1,6 +1,6 @@ { "locale": "sr-RS", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Преузмите генерисани резултат", "Download started": "Преузимање је почело", "Downloaded {count} memories": "Преузето {count} успомена", + "Downloading...": "Преузимање...", "Draft": "Нацрт", "Draft a daily brief every morning from recent runs and approvals": "Израдите дневни извештај сваког јутра из недавних прегледа и одобрења", "Draft a slide outline from the current context.": "Нацртајте скицу слајда из тренутног контекста.", @@ -9761,6 +9766,7 @@ "Install only": "Само инсталирај", "Install package to use this plugin": "Инсталирајте пакет да бисте користили овај додатак", "Installation guide": "Упутство за инсталацију", + "Installed": "Инсталиран", "Installed theme details could not be loaded.": "Детаљи инсталиране теме нису могли да се учитају.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Није могуће учитати инсталиране теме. Ling користи уграђени резервни.", "Installing theme": "Инсталирање теме", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Користите могућност на каналу: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Користите савете као збирке више агената за вишекратну употребу, а затим их увезите у канал према референци.", "Use current configuration": "Користите тренутну конфигурацију", + "Use detected {version}": "Откривена употреба {version}", "Use existing folder": "Користите постојећи фолдер", "Use for this teammate": "Користи за овог саиграча", "Use full access for this conversation after explicit confirmation.": "Користите пун приступ за овај разговор након изричите потврде.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Проверите кључ, приступ налогу, стање и дозволу модела за овог провајдера.", "Verifying": "Верифиинг", "Verifying your identity": "Верификација вашег идентитета", + "Verifying...": "Верификација...", "Version": "Версион", "Version {number}": "Верзија {number}", "Video": "Видео", diff --git a/packages/localization/catalogs/sv-SE.json b/packages/localization/catalogs/sv-SE.json index 0be535d57..5d8646783 100644 --- a/packages/localization/catalogs/sv-SE.json +++ b/packages/localization/catalogs/sv-SE.json @@ -1,6 +1,6 @@ { "locale": "sv-SE", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Ladda ner genererat resultat", "Download started": "Nedladdningen startade", "Downloaded {count} memories": "Nedladdade {count} minnen", + "Downloading...": "Laddar ned...", "Draft": "Förslag", "Draft a daily brief every morning from recent runs and approvals": "Gör ett utkast varje morgon från de senaste körningarna och godkännanden", "Draft a slide outline from the current context.": "Rita en bildkontur från det aktuella sammanhanget.", @@ -9761,6 +9766,7 @@ "Install only": "Endast installera", "Install package to use this plugin": "Installera paketet för att använda detta plugin", "Installation guide": "Installationsguide", + "Installed": "Installerad", "Installed theme details could not be loaded.": "Installerade temadetaljer kunde inte laddas.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Installerade teman kunde inte laddas. Ling använder en inbyggd reserv.", "Installing theme": "Installerar tema", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Använd kapacitet i kanal: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Använd råd som återanvändbara samlingar med flera agenter och importera dem sedan till en kanal genom referens.", "Use current configuration": "Använd nuvarande konfiguration", + "Use detected {version}": "Använd upptäckt {version}", "Use existing folder": "Använd befintlig mapp", "Use for this teammate": "Använd för denna lagkamrat", "Use full access for this conversation after explicit confirmation.": "Använd full åtkomst för denna konversation efter uttrycklig bekräftelse.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Verifiera nyckel, kontoåtkomst, saldo och modellbehörighet för denna leverantör.", "Verifying": "Verifierar", "Verifying your identity": "Verifierar din identitet", + "Verifying...": "Verifierar...", "Version": "Version", "Version {number}": "Version {number}", "Video": "Video", diff --git a/packages/localization/catalogs/sw-TZ.json b/packages/localization/catalogs/sw-TZ.json index 694f8c447..11211911f 100644 --- a/packages/localization/catalogs/sw-TZ.json +++ b/packages/localization/catalogs/sw-TZ.json @@ -1,6 +1,6 @@ { "locale": "sw-TZ", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Pakua matokeo yaliyotolewa", "Download started": "Upakuaji umeanza", "Downloaded {count} memories": "Imepakua {count} kumbukumbu", + "Downloading...": "Inapakua...", "Draft": "Rasimu", "Draft a daily brief every morning from recent runs and approvals": "Rasimu muhtasari wa kila siku kila asubuhi kutoka kwa utekelezaji na idhini za hivi majuzi", "Draft a slide outline from the current context.": "Rasimu ya muhtasari wa slaidi kutoka kwa muktadha wa sasa.", @@ -9761,6 +9766,7 @@ "Install only": "Sakinisha pekee", "Install package to use this plugin": "Sakinisha kifurushi ili kutumia programu-jalizi hii", "Installation guide": "Mwongozo wa ufungaji", + "Installed": "Imesakinishwa", "Installed theme details could not be loaded.": "Maelezo ya mandhari yaliyosakinishwa hayakuweza kupakiwa.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Mandhari yaliyosakinishwa hayakuweza kupakiwa. Ling inatumia njia mbadala iliyojengewa ndani.", "Installing theme": "Inasakinisha mandhari", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Tumia uwezo katika kituo: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Tumia mabaraza kama makusanyo ya mawakala wengi yanayoweza kutumika tena, kisha yaagize kwenye kituo kwa marejeleo.", "Use current configuration": "Tumia usanidi wa sasa", + "Use detected {version}": "Matumizi yametambuliwa {version}", "Use existing folder": "Tumia folda iliyopo", "Use for this teammate": "Tumia kwa mshirika huyu", "Use full access for this conversation after explicit confirmation.": "Tumia ufikiaji kamili kwa mazungumzo haya baada ya uthibitisho wazi.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Thibitisha ufunguo, ufikiaji wa akaunti, salio na ruhusa ya muundo kwa mtoa huduma huyu.", "Verifying": "Inathibitisha", "Verifying your identity": "Inathibitisha utambulisho wako", + "Verifying...": "Inathibitisha...", "Version": "Toleo", "Version {number}": "Toleo {number}", "Video": "Video", diff --git a/packages/localization/catalogs/ta-IN.json b/packages/localization/catalogs/ta-IN.json index 32f62a1d7..bd2f806c0 100644 --- a/packages/localization/catalogs/ta-IN.json +++ b/packages/localization/catalogs/ta-IN.json @@ -1,6 +1,6 @@ { "locale": "ta-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "உருவாக்கப்பட்ட முடிவைப் பதிவிறக்கவும்", "Download started": "பதிவிறக்கம் தொடங்கியது", "Downloaded {count} memories": "_{count} நினைவுகள் பதிவிறக்கம் செய்யப்பட்டது", + "Downloading...": "பதிவிறக்குகிறது...", "Draft": "வரைவு", "Draft a daily brief every morning from recent runs and approvals": "சமீபத்திய ஓட்டங்கள் மற்றும் ஒப்புதல்களிலிருந்து தினமும் காலையில் தினசரி சுருக்கத்தை உருவாக்கவும்", "Draft a slide outline from the current context.": "தற்போதைய சூழலில் இருந்து ஒரு ஸ்லைடு அவுட்லைன் வரைவு.", @@ -9761,6 +9766,7 @@ "Install only": "மட்டும் நிறுவவும்", "Install package to use this plugin": "இந்த சொருகி பயன்படுத்த தொகுப்பை நிறுவவும்", "Installation guide": "நிறுவல் வழிகாட்டி", + "Installed": "நிறுவப்பட்டது", "Installed theme details could not be loaded.": "நிறுவப்பட்ட தீம் விவரங்களை ஏற்ற முடியவில்லை.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "நிறுவப்பட்ட தீம்களை ஏற்ற முடியவில்லை. Ling உள்ளமைக்கப்பட்ட ஃபால்பேக்கைப் பயன்படுத்துகிறது.", "Installing theme": "தீம் நிறுவுதல்", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "சேனலில் திறனைப் பயன்படுத்தவும்: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "கவுன்சில்களை மீண்டும் பயன்படுத்தக்கூடிய மல்டி-ஏஜென்ட் சேகரிப்புகளாகப் பயன்படுத்தவும், பின்னர் அவற்றை குறிப்பு மூலம் சேனலில் இறக்குமதி செய்யவும்.", "Use current configuration": "தற்போதைய உள்ளமைவைப் பயன்படுத்தவும்", + "Use detected {version}": "கண்டறியப்பட்ட {version} பயன்படுத்தவும்", "Use existing folder": "ஏற்கனவே உள்ள கோப்புறையைப் பயன்படுத்தவும்", "Use for this teammate": "இந்த அணிக்கு பயன்படுத்தவும்", "Use full access for this conversation after explicit confirmation.": "வெளிப்படையான உறுதிப்படுத்தலுக்குப் பிறகு இந்த உரையாடலுக்கான முழு அணுகலைப் பயன்படுத்தவும்.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "இந்த வழங்குனருக்கான விசை, கணக்கு அணுகல், இருப்பு மற்றும் மாதிரி அனுமதி ஆகியவற்றைச் சரிபார்க்கவும்.", "Verifying": "சரிபார்க்கிறது", "Verifying your identity": "உங்கள் அடையாளத்தைச் சரிபார்க்கிறது", + "Verifying...": "சரிபார்க்கிறது...", "Version": "பதிப்பு", "Version {number}": "பதிப்பு {number}", "Video": "வீடியோ", diff --git a/packages/localization/catalogs/te-IN.json b/packages/localization/catalogs/te-IN.json index d521c71ff..47135d8a1 100644 --- a/packages/localization/catalogs/te-IN.json +++ b/packages/localization/catalogs/te-IN.json @@ -1,6 +1,6 @@ { "locale": "te-IN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "రూపొందించిన ఫలితాన్ని డౌన్‌లోడ్ చేయండి", "Download started": "డౌన్‌లోడ్ ప్రారంభించబడింది", "Downloaded {count} memories": "డౌన్‌లోడ్ చేయబడిన {count} జ్ఞాపకాలు", + "Downloading...": "డౌన్‌లోడ్ చేస్తోంది...", "Draft": "డ్రాఫ్ట్", "Draft a daily brief every morning from recent runs and approvals": "ఇటీవలి పరుగులు మరియు ఆమోదాల నుండి ప్రతిరోజూ ఉదయం రోజువారీ సంక్షిప్తాన్ని రూపొందించండి", "Draft a slide outline from the current context.": "ప్రస్తుత సందర్భం నుండి స్లయిడ్ అవుట్‌లైన్‌ను రూపొందించండి.", @@ -9761,6 +9766,7 @@ "Install only": "ఇన్‌స్టాల్ మాత్రమే", "Install package to use this plugin": "ఈ ప్లగ్‌ఇన్‌ని ఉపయోగించడానికి ప్యాకేజీని ఇన్‌స్టాల్ చేయండి", "Installation guide": "ఇన్స్టాలేషన్ గైడ్", + "Installed": "ఇన్‌స్టాల్ చేయబడింది", "Installed theme details could not be loaded.": "ఇన్‌స్టాల్ చేయబడిన థీమ్ వివరాలను లోడ్ చేయడం సాధ్యపడలేదు.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ఇన్‌స్టాల్ చేసిన థీమ్‌లను లోడ్ చేయడం సాధ్యపడలేదు. Ling అంతర్నిర్మిత ఫాల్‌బ్యాక్‌ని ఉపయోగిస్తోంది.", "Installing theme": "థీమ్‌ను ఇన్‌స్టాల్ చేస్తోంది", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "ఛానెల్‌లో సామర్థ్యాన్ని ఉపయోగించండి: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "కౌన్సిళ్లను పునర్వినియోగ బహుళ-ఏజెంట్ సేకరణలుగా ఉపయోగించండి, ఆపై వాటిని సూచన ద్వారా ఛానెల్‌లోకి దిగుమతి చేయండి.", "Use current configuration": "ప్రస్తుత కాన్ఫిగరేషన్ ఉపయోగించండి", + "Use detected {version}": "గుర్తించబడిన {version}ని ఉపయోగించండి", "Use existing folder": "ఇప్పటికే ఉన్న ఫోల్డర్‌ని ఉపయోగించండి", "Use for this teammate": "ఈ సహచరుడి కోసం ఉపయోగించండి", "Use full access for this conversation after explicit confirmation.": "స్పష్టమైన నిర్ధారణ తర్వాత ఈ సంభాషణ కోసం పూర్తి ప్రాప్యతను ఉపయోగించండి.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "ఈ ప్రొవైడర్ కోసం కీ, ఖాతా యాక్సెస్, బ్యాలెన్స్ మరియు మోడల్ అనుమతిని ధృవీకరించండి.", "Verifying": "ధృవీకరిస్తోంది", "Verifying your identity": "మీ గుర్తింపును ధృవీకరిస్తోంది", + "Verifying...": "ధృవీకరిస్తోంది...", "Version": "వెర్షన్", "Version {number}": "వెర్షన్ {number}", "Video": "వీడియో", diff --git a/packages/localization/catalogs/th-TH.json b/packages/localization/catalogs/th-TH.json index 718d0bbc7..6255c7997 100644 --- a/packages/localization/catalogs/th-TH.json +++ b/packages/localization/catalogs/th-TH.json @@ -1,6 +1,6 @@ { "locale": "th-TH", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "ดาวน์โหลดผลลัพธ์ที่สร้างขึ้น", "Download started": "เริ่มดาวน์โหลดแล้ว", "Downloaded {count} memories": "ดาวน์โหลด {count} ความทรงจำแล้ว", + "Downloading...": "กำลังดาวน์โหลด...", "Draft": "ร่าง", "Draft a daily brief every morning from recent runs and approvals": "ร่างสรุปรายวันทุกเช้าจากการดำเนินการและการอนุมัติล่าสุด", "Draft a slide outline from the current context.": "ร่างโครงร่างสไลด์จากบริบทปัจจุบัน", @@ -9761,6 +9766,7 @@ "Install only": "ติดตั้งเท่านั้น", "Install package to use this plugin": "ติดตั้งแพ็คเกจเพื่อใช้ปลั๊กอินนี้", "Installation guide": "คู่มือการติดตั้ง", + "Installed": "ติดตั้งแล้ว", "Installed theme details could not be loaded.": "ไม่สามารถโหลดรายละเอียดธีมที่ติดตั้งได้", "Installed themes could not be loaded. Ling is using a built-in fallback.": "ไม่สามารถโหลดธีมที่ติดตั้งได้ Ling กำลังใช้ทางเลือกสำรองในตัว", "Installing theme": "กำลังติดตั้งธีม", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "ใช้ความสามารถในช่อง: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "ใช้สภาเป็นคอลเลกชันหลายตัวแทนที่ใช้ซ้ำได้ จากนั้นนำเข้าลงในช่องทางโดยการอ้างอิง", "Use current configuration": "ใช้การกำหนดค่าปัจจุบัน", + "Use detected {version}": "ตรวจพบการใช้งาน {version}", "Use existing folder": "ใช้โฟลเดอร์ที่มีอยู่", "Use for this teammate": "ใช้สำหรับเพื่อนร่วมทีมคนนี้", "Use full access for this conversation after explicit confirmation.": "ใช้การเข้าถึงโดยสมบูรณ์สำหรับการสนทนานี้หลังจากการยืนยันที่ชัดเจน", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "ตรวจสอบคีย์ การเข้าถึงบัญชี ยอดคงเหลือ และการอนุญาตโมเดลสำหรับผู้ให้บริการรายนี้", "Verifying": "กำลังยืนยัน", "Verifying your identity": "การยืนยันตัวตนของคุณ", + "Verifying...": "กำลังยืนยัน...", "Version": "เวอร์ชัน", "Version {number}": "เวอร์ชัน {number}", "Video": "วีดีโอ", diff --git a/packages/localization/catalogs/tr-TR.json b/packages/localization/catalogs/tr-TR.json index 3c3eff106..c28af6b49 100644 --- a/packages/localization/catalogs/tr-TR.json +++ b/packages/localization/catalogs/tr-TR.json @@ -1,6 +1,6 @@ { "locale": "tr-TR", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Oluşturulan sonucu indir", "Download started": "İndirme başladı", "Downloaded {count} memories": "{count} anı indirildi", + "Downloading...": "İndiriliyor...", "Draft": "Taslak", "Draft a daily brief every morning from recent runs and approvals": "Her sabah son çalışmalar ve onaylardan günlük bir özet taslağı hazırlayın", "Draft a slide outline from the current context.": "Geçerli bağlamdan bir slayt taslağı taslağı oluşturun.", @@ -9761,6 +9766,7 @@ "Install only": "Yalnızca yükle", "Install package to use this plugin": "Bu eklentiyi kullanmak için paketi yükleyin", "Installation guide": "Kurulum kılavuzu", + "Installed": "Yüklendi", "Installed theme details could not be loaded.": "Yüklenen tema ayrıntıları yüklenemedi.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Yüklenen temalar yüklenemedi. Ling yerleşik bir geri dönüş kullanıyor.", "Installing theme": "Tema yükleniyor", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Kanaldaki özelliği kullan: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Konseyleri yeniden kullanılabilir çok aracılı koleksiyonlar olarak kullanın, ardından bunları referans olarak bir kanala aktarın.", "Use current configuration": "Mevcut yapılandırmayı kullan", + "Use detected {version}": "Algılanan kullanımı kullanın {version}", "Use existing folder": "Mevcut klasörü kullan", "Use for this teammate": "Bu takım arkadaşı için kullanın", "Use full access for this conversation after explicit confirmation.": "Açıkça onaylandıktan sonra bu görüşme için tam erişimi kullanın.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Bu sağlayıcının anahtarını, hesap erişimini, bakiyesini ve model iznini doğrulayın.", "Verifying": "Doğrulanıyor", "Verifying your identity": "Kimliğinizi doğrulama", + "Verifying...": "Doğrulanıyor...", "Version": "Sürüm", "Version {number}": "Sürüm {number}", "Video": "Video", diff --git a/packages/localization/catalogs/uk-UA.json b/packages/localization/catalogs/uk-UA.json index 4c6f127ff..90de1942a 100644 --- a/packages/localization/catalogs/uk-UA.json +++ b/packages/localization/catalogs/uk-UA.json @@ -1,6 +1,6 @@ { "locale": "uk-UA", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Завантажте згенерований результат", "Download started": "Завантаження розпочато", "Downloaded {count} memories": "Завантажено {count} спогадів", + "Downloading...": "Завантаження...", "Draft": "Чернетка", "Draft a daily brief every morning from recent runs and approvals": "Щоранку складайте щоденний звіт із останніх прогонів і схвалень", "Draft a slide outline from the current context.": "Створіть схему слайда з поточного контексту.", @@ -9761,6 +9766,7 @@ "Install only": "Лише встановити", "Install package to use this plugin": "Установіть пакет, щоб використовувати цей плагін", "Installation guide": "Керівництво по установці", + "Installed": "встановлено", "Installed theme details could not be loaded.": "Не вдалося завантажити деталі встановленої теми.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Не вдалося завантажити встановлені теми. Ling використовує вбудований запасний варіант.", "Installing theme": "Встановлення теми", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Використовувати можливості в каналі: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Використовуйте поради як багаторазові мультиагентні колекції, а потім імпортуйте їх у канал за посиланням.", "Use current configuration": "Використовувати поточну конфігурацію", + "Use detected {version}": "Виявлено використання {version}", "Use existing folder": "Використовувати існуючу папку", "Use for this teammate": "Використовуйте для цього товариша по команді", "Use full access for this conversation after explicit confirmation.": "Використовуйте повний доступ до цієї розмови після явного підтвердження.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Перевірте ключ, доступ до облікового запису, баланс і дозвіл моделі для цього постачальника.", "Verifying": "Перевірка", "Verifying your identity": "Підтвердження вашої особи", + "Verifying...": "Перевірка...", "Version": "Версія", "Version {number}": "Версія {number}", "Video": "відео", diff --git a/packages/localization/catalogs/vi-VN.json b/packages/localization/catalogs/vi-VN.json index 7524853ff..4e9178889 100644 --- a/packages/localization/catalogs/vi-VN.json +++ b/packages/localization/catalogs/vi-VN.json @@ -1,6 +1,6 @@ { "locale": "vi-VN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "Tải xuống kết quả được tạo", "Download started": "Đã bắt đầu tải xuống", "Downloaded {count} memories": "Đã tải xuống {count} kỷ niệm", + "Downloading...": "Đang tải xuống...", "Draft": "Bản nháp", "Draft a daily brief every morning from recent runs and approvals": "Soạn thảo bản tóm tắt hàng ngày vào mỗi buổi sáng từ các lần chạy và phê duyệt gần đây", "Draft a slide outline from the current context.": "Soạn thảo dàn ý slide từ ngữ cảnh hiện tại.", @@ -9761,6 +9766,7 @@ "Install only": "Chỉ cài đặt", "Install package to use this plugin": "Cài đặt gói để sử dụng plugin này", "Installation guide": "Hướng dẫn cài đặt", + "Installed": "Đã cài đặt", "Installed theme details could not be loaded.": "Không thể tải chi tiết chủ đề đã cài đặt.", "Installed themes could not be loaded. Ling is using a built-in fallback.": "Không thể tải các chủ đề đã cài đặt. Ling đang sử dụng phương án dự phòng tích hợp sẵn.", "Installing theme": "Đang cài đặt chủ đề", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "Khả năng sử dụng trong kênh: {name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "Sử dụng hội đồng làm bộ sưu tập đa tác nhân có thể tái sử dụng, sau đó nhập chúng vào kênh bằng cách tham chiếu.", "Use current configuration": "Sử dụng cấu hình hiện tại", + "Use detected {version}": "Đã phát hiện sử dụng {version}", "Use existing folder": "Sử dụng thư mục hiện có", "Use for this teammate": "Sử dụng cho đồng đội này", "Use full access for this conversation after explicit confirmation.": "Sử dụng toàn quyền truy cập vào cuộc trò chuyện này sau khi được xác nhận rõ ràng.", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "Xác minh khóa, quyền truy cập tài khoản, số dư và quyền mô hình cho nhà cung cấp này.", "Verifying": "Đang xác minh", "Verifying your identity": "Xác minh danh tính của bạn", + "Verifying...": "Đang xác minh...", "Version": "Phiên bản", "Version {number}": "Phiên bản {number}", "Video": "Băng hình", diff --git a/packages/localization/catalogs/zh-CN.json b/packages/localization/catalogs/zh-CN.json index a1ff86dff..9b51dc296 100644 --- a/packages/localization/catalogs/zh-CN.json +++ b/packages/localization/catalogs/zh-CN.json @@ -1,6 +1,6 @@ { "locale": "zh-CN", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "下载生成结果", "Download started": "已开始下载", "Downloaded {count} memories": "已下载 {count} 条记忆", + "Downloading...": "正在下载…", "Draft": "草稿", "Draft a daily brief every morning from recent runs and approvals": "例如:每天早上根据最近运行和审批生成简报", "Draft a slide outline from the current context.": "根据当前上下文起草一份幻灯片大纲。", @@ -9761,6 +9766,7 @@ "Install only": "仅安装", "Install package to use this plugin": "安装插件包后即可使用", "Installation guide": "安装引导", + "Installed": "已安装", "Installed theme details could not be loaded.": "无法读取已安装主题的详情。", "Installed themes could not be loaded. Ling is using a built-in fallback.": "已安装主题加载失败,Ling 正在使用内置后备主题。", "Installing theme": "正在安装主题", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "在频道中使用能力:{name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "把智囊团作为可复用的多 Agent 集合,再按引用导入频道。", "Use current configuration": "使用当前配置", + "Use detected {version}": "使用检测到的 {version}", "Use existing folder": "使用现有文件夹", "Use for this teammate": "给当前队友使用", "Use full access for this conversation after explicit confirmation.": "明确确认后,此对话使用完整访问权限。", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "请检查 Key、账号访问权限、余额和模型权限。", "Verifying": "验证中", "Verifying your identity": "正在验证身份", + "Verifying...": "正在校验…", "Version": "版本", "Version {number}": "版本 {number}", "Video": "视频", diff --git a/packages/localization/catalogs/zh-HK.json b/packages/localization/catalogs/zh-HK.json index 41f45e585..265bebdbf 100644 --- a/packages/localization/catalogs/zh-HK.json +++ b/packages/localization/catalogs/zh-HK.json @@ -1,6 +1,6 @@ { "locale": "zh-HK", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "下載產生的結果", "Download started": "下載開始", "Downloaded {count} memories": "下載了 {count} 記憶", + "Downloading...": "正在下載...", "Draft": "草稿", "Draft a daily brief every morning from recent runs and approvals": "每天早上根據最近的運行和批准起草一份每日簡報", "Draft a slide outline from the current context.": "根據目前上下文起草投影片大綱。", @@ -9761,6 +9766,7 @@ "Install only": "僅安裝", "Install package to use this plugin": "安裝包以使用此插件", "Installation guide": "安裝指南", + "Installed": "已安裝", "Installed theme details could not be loaded.": "無法載入已安裝主題的詳細資訊。", "Installed themes could not be loaded. Ling is using a built-in fallback.": "無法載入已安裝的主題。 Ling 正在使用內建後備。", "Installing theme": "安裝主題", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "使用頻道中的能力:{name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "使用理事會作為可重複使用的多代理集合,然後透過引用將它們匯入到通道中。", "Use current configuration": "使用目前配置", + "Use detected {version}": "使用偵測到的 {version}", "Use existing folder": "使用現有資料夾", "Use for this teammate": "用於該隊友", "Use full access for this conversation after explicit confirmation.": "明確確認後使用對此對話的完全存取權限。", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "驗證該提供者的金鑰、帳戶存取權限、餘額和模型權限。", "Verifying": "正在驗證", "Verifying your identity": "驗證您的身份", + "Verifying...": "正在驗證...", "Version": "版本", "Version {number}": "版本 {number}", "Video": "影片", diff --git a/packages/localization/catalogs/zh-TW.json b/packages/localization/catalogs/zh-TW.json index ff31e668a..73c23b833 100644 --- a/packages/localization/catalogs/zh-TW.json +++ b/packages/localization/catalogs/zh-TW.json @@ -1,6 +1,6 @@ { "locale": "zh-TW", - "sourceRevision": "d7b87e56798cd224ceb2f57b42318f6e8c5281cb0f13fedffe9b1eef97bc02c8", + "sourceRevision": "aab656282e8717e8d97044a7de3a8a8fe1375148356659313a7b8056c81cdf8a", "sourceHashes": { "{action} (Enter)": "9472217728ec383f5dfdd37d2f84c381ed7b4546d115f6e3e536959810ef5af5", "{agent} wants to start task \"{task}\" and needs {permissions}.": "b87261e1f3ceaec90a862105f2885011d44b2722f9979327a3790af82a5dcdf1", @@ -2152,6 +2152,7 @@ "Download generated result": "534f6b1f225d782898a845212e3616833c73beb768b9844bb5c14160c3f5f93b", "Download started": "efece5dd193335971168defa1c0742de79a15d93317900378740c0cee4c21f92", "Downloaded {count} memories": "cf6d5e84e9679ab3f1f65ddd268ee998d2f90b06e04f043a53203fb235854166", + "Downloading...": "f976eb284ebb156b24986c253d5d8a5686d9cc62e4eda4a18c0f949fd1141336", "Draft": "ebf12ef47cf575b3ba9a3cc019c5310146fdac88f6d1be6618d6e91158c2f174", "Draft a daily brief every morning from recent runs and approvals": "164c7c4d016227e1d00139733d857c249173572b060edadfc95a772217b9d9c4", "Draft a slide outline from the current context.": "6ebedbaa69ff6839fe43a4a8096fadd86b1b1c0b97f8084aa8b08b34633e84b7", @@ -2881,6 +2882,7 @@ "Install only": "a758f93054906a768ae5fa392b1e273fb2576c403c76559ce336b965abd8dfdb", "Install package to use this plugin": "32865d3ea0da6baf539d44bf8662fc31b1cb7d47a7554cee4eedc0b0f26f31f4", "Installation guide": "d334745b85acdbfcbfe8396dfa2c463e3ba6dcd372ff3ce4ab93a1d2aca8277d", + "Installed": "f8b32f4e92bd84ce1fcd177bec17d43093de3ee8303bb40c1b9ea521ed6a70f6", "Installed theme details could not be loaded.": "95e7920ab3bf341840edcad90219ec2839276dd4ab907c95b7d91db097cbe4f3", "Installed themes could not be loaded. Ling is using a built-in fallback.": "7765170d6f60d11600a252a65c8eda4f42a20346435c46021052feeb42b98b02", "Installing theme": "5b968f841f100a662441f68813d1d87f0c544f4e098c787319b17a3423cedf7d", @@ -6487,6 +6489,7 @@ "Use capability in channel: {name}": "a0fed9b7fde084a7b5d3fa294780426646caa1d0476c38f4c6c68240c951c16b", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "189c00b591217bba41095824cdc6efd53b0b4e7d0143e80a9f830c0ef7320df6", "Use current configuration": "4053203ff543df3e9f33b791b9d641918ae4a74c844402a9846b984f9ea1fbf6", + "Use detected {version}": "0c66624c3c6e4405fe3bd622d77d6d80b298fdf1326ed58ca97e7684cc1845b1", "Use existing folder": "a884c64758fb639f3aadd9e8b51584ee819190593a0853adef89542632cc5f2f", "Use for this teammate": "a44ba39a1769fcd31eb8c7ce49635e2c0be74cc74bf82f9a067acdb8295d6d3f", "Use full access for this conversation after explicit confirmation.": "d2827d4c21872ae0b2dfaee092463a8efb8225a40ed9acf84c8049d16e26f313", @@ -6582,6 +6585,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "5ba03b132333df8c1d7b130335bfa5a4034517c93f2a8725019d0d0eec7eb401", "Verifying": "a7d4a9f301edaa61ef561aaba1847d2729a900ea00bbf358953f99d99d913666", "Verifying your identity": "d5f01f2f82f3899ed0a03db78288278f4da2c2f432cadea037202ed17a422fc6", + "Verifying...": "2ec1ac7d45e8079b8410caee12456f9655d1ae809e9ec933d3a7982e1f3a5d08", "Version": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396", "Version {number}": "f8b9f81427a563d2a6539999fdf148443bd55681bf666d92f77485a9043aaa13", "Video": "d534be829e32196b4d1e53b67103cf1e376b1d60071857572598c196abfefbc6", @@ -9032,6 +9036,7 @@ "Download generated result": "下載產生的結果", "Download started": "下載開始", "Downloaded {count} memories": "下載了 {count} 記憶", + "Downloading...": "正在下載...", "Draft": "草稿", "Draft a daily brief every morning from recent runs and approvals": "每天早上根據最近的運行和批准起草一份每日簡報", "Draft a slide outline from the current context.": "根據目前上下文起草投影片大綱。", @@ -9761,6 +9766,7 @@ "Install only": "僅安裝", "Install package to use this plugin": "安裝包以使用此插件", "Installation guide": "安裝指南", + "Installed": "已安裝", "Installed theme details could not be loaded.": "無法載入已安裝主題的詳細資訊。", "Installed themes could not be loaded. Ling is using a built-in fallback.": "無法載入已安裝的主題。 Ling 正在使用內建後備。", "Installing theme": "安裝主題", @@ -13367,6 +13373,7 @@ "Use capability in channel: {name}": "使用頻道中的能力:{name}", "Use councils as reusable multi-agent collections, then import them into a channel by reference.": "使用理事會作為可重複使用的多代理集合,然後透過引用將它們匯入到通道中。", "Use current configuration": "使用目前配置", + "Use detected {version}": "使用偵測到的 {version}", "Use existing folder": "使用現有資料夾", "Use for this teammate": "用於該隊友", "Use full access for this conversation after explicit confirmation.": "明確確認後使用對此對話的完全存取權限。", @@ -13462,6 +13469,7 @@ "Verify the key, account access, balance, and model permission for this provider.": "驗證該提供者的金鑰、帳戶存取權限、餘額和模型權限。", "Verifying": "正在驗證", "Verifying your identity": "驗證您的身份", + "Verifying...": "正在驗證...", "Version": "版本", "Version {number}": "版本 {number}", "Video": "影片", From 5411b0dff4bc78ccbec2b9d7a316089a99a8f92e Mon Sep 17 00:00:00 2001 From: gansx <798622053@qq.com> Date: Tue, 27 Oct 2026 21:46:29 +0800 Subject: [PATCH 2/5] fix(desktop): align preload capability names and parse the registry URL in the test --- apps/desktop/preload/main-window.ts | 6 +++--- packages/daemon/test/engine-lifecycle.test.mjs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/desktop/preload/main-window.ts b/apps/desktop/preload/main-window.ts index c8e90a411..d6f27be67 100644 --- a/apps/desktop/preload/main-window.ts +++ b/apps/desktop/preload/main-window.ts @@ -154,9 +154,9 @@ const capabilities: LingDesktopCapabilities = { revoke: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.mobileAccessRevoke), }, executionEngines: { - discoverEngines: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesDiscover), - installEngine: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstall, engineId), - installEngineStatus: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstallStatus, engineId), + discover: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesDiscover), + install: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstall, engineId), + installStatus: (engineId: ExternalExecutionEngineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesInstallStatus, engineId), listProfiles: () => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEnginesList), getProfile: (engineId) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEngineProfileGet, engineId), saveProfile: (engineId, request) => ipcRenderer.invoke(DESKTOP_IPC_CHANNELS.executionEngineProfileSave, engineId, request), diff --git a/packages/daemon/test/engine-lifecycle.test.mjs b/packages/daemon/test/engine-lifecycle.test.mjs index 9b1d086e5..a0cbe8e73 100644 --- a/packages/daemon/test/engine-lifecycle.test.mjs +++ b/packages/daemon/test/engine-lifecycle.test.mjs @@ -64,7 +64,7 @@ async function packTarball(files) { function registryFetch(metadata, tarball) { return async (url) => { - if (url.includes("registry.npmjs.org") && url.endsWith(".tgz")) { + if (new URL(String(url)).hostname === "registry.npmjs.org" && String(url).endsWith(".tgz")) { return new Response(tarball.bytes, { status: 200 }); } return new Response(JSON.stringify(metadata), { status: 200 }); From b43b37f83c945ae9c06bc5674e390facb5a4c8a6 Mon Sep 17 00:00:00 2001 From: gansx <798622053@qq.com> Date: Tue, 27 Oct 2026 21:50:52 +0800 Subject: [PATCH 3/5] fix(engines): reset install state on cancellation and classify out-of-range versions --- .../execution-engines/engine-scanner.ts | 18 +++++++++++++++++- .../src/features/execution-engines/feature.ts | 5 ++++- packages/daemon/test/engine-lifecycle.test.mjs | 14 ++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/daemon/src/features/execution-engines/engine-scanner.ts b/packages/daemon/src/features/execution-engines/engine-scanner.ts index 5244eb566..5543f365b 100644 --- a/packages/daemon/src/features/execution-engines/engine-scanner.ts +++ b/packages/daemon/src/features/execution-engines/engine-scanner.ts @@ -41,6 +41,21 @@ async function firstExecutable(paths: readonly string[]): Promise Number.parseInt(part, 10) || 0); + const pb = b.split(/[.-]/u).map((part) => Number.parseInt(part, 10) || 0); + for (let index = 0; index < Math.max(pa.length, pb.length); index += 1) { + const delta = (pa[index] ?? 0) - (pb[index] ?? 0); + if (delta !== 0) return delta < 0 ? -1 : 1; + } + return 0; +} + +function versionInRange(version: string, minSupported: string, maxVerified: string): boolean { + return compareVersions(version, minSupported) >= 0 && compareVersions(version, maxVerified) <= 0; +} + function discoveryProfile(engineId: ExternalExecutionEngineId, executablePath: string): ExecutionEngineProfile { return { schemaVersion: 1, @@ -81,9 +96,10 @@ export async function discoverEngines(options: DiscoverEnginesOptions = {}): Pro const probe = await probeEngineInstallation(discoveryProfile(pkg.engineId, executable), { signal: options.signal, timeoutMs: options.probeTimeoutMs ?? 3000, spawn: options.spawn, }); + const outOfRange = probe.runtimeVersion && pkg.installable && !versionInRange(probe.runtimeVersion, pkg.minSupported, pkg.maxVerified); candidates.push({ engineId: pkg.engineId, - status: "detected", + status: outOfRange ? "unsupported" : "detected", executablePath: executable, version: probe.runtimeVersion, digest: probe.executableDigest, diff --git a/packages/daemon/src/features/execution-engines/feature.ts b/packages/daemon/src/features/execution-engines/feature.ts index 231f64bfa..613f7739b 100644 --- a/packages/daemon/src/features/execution-engines/feature.ts +++ b/packages/daemon/src/features/execution-engines/feature.ts @@ -115,7 +115,10 @@ export class EngineManagementFeature { const result = await install(engineId, this.options.userPaths, { signal }); return mark("installed", { executablePath: result.executablePath, version: result.version }); } catch (error) { - if (signal.aborted) throw error; + if (signal.aborted) { + this.installs.delete(engineId); + throw error; + } const message = error instanceof Error ? error.message : String(error); mark("failed", { error: message }); throw error; diff --git a/packages/daemon/test/engine-lifecycle.test.mjs b/packages/daemon/test/engine-lifecycle.test.mjs index a0cbe8e73..32c546b02 100644 --- a/packages/daemon/test/engine-lifecycle.test.mjs +++ b/packages/daemon/test/engine-lifecycle.test.mjs @@ -71,6 +71,20 @@ function registryFetch(metadata, tarball) { }; } +test("discovery classifies out-of-range versions as unsupported", async (t) => { + const dir = await mkdtemp(join(tmpdir(), "ling-engine-range-")); + t.after(() => rm(dir, { recursive: true, force: true })); + const fake = join(dir, "codex"); + await writeFile(fake, "#!/bin/sh\necho \"codex-cli 0.100.0\"\n", { mode: 0o755 }); + const report = await discoverEngines({ + platform: "darwin", probeTimeoutMs: 3000, + resolveExecutable: async (command) => (command === "codex" ? fake : undefined), + }); + const codex = report.candidates.find((candidate) => candidate.engineId === "codex-app-server"); + assert.equal(codex?.status, "unsupported"); + assert.equal(codex?.version, "0.100.0"); +}); + test("managed install downloads, verifies and probes the pinned platform binary", async (t) => { const rootDir = await mkdtemp(join(tmpdir(), "ling-engine-root-")); t.after(() => rm(rootDir, { recursive: true, force: true })); From 927a4dea7e40379d38cb162fbcad9b59329a526e Mon Sep 17 00:00:00 2001 From: gansx <798622053@qq.com> Date: Tue, 27 Oct 2026 22:40:04 +0800 Subject: [PATCH 4/5] test(daemon): map lifecycle modules in the login race fixture --- packages/daemon/test/execution-engine-login-races.test.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/daemon/test/execution-engine-login-races.test.mjs b/packages/daemon/test/execution-engine-login-races.test.mjs index 8ff06fa75..7eac96b90 100644 --- a/packages/daemon/test/execution-engine-login-races.test.mjs +++ b/packages/daemon/test/execution-engine-login-races.test.mjs @@ -131,7 +131,7 @@ async function runFixture(target, scenario) { const base = new URL(`../${target}/features/execution-engines/`, import.meta.url); const modules = new Map(["native-login", "native-secrets", "codex-login", "codex-connection", "login-manager", "authority", "feature", "controller", "claude-environment", "windows-supervisor", "kimi-auth-state", "native-auth-file", "kimi-native-executable", "kimi-terminal-login", - "engine-secret-store", "secret-profile"] + "engine-secret-store", "secret-profile", "engine-scanner", "managed-engine-installer"] .map((name) => [`./${name}.js`, new URL(`${name}.${extension}`, base).href])); const requestUrl = new URL(`../../shared/request.${extension}`, base).href; const realUrls = new Set([...modules.values(), requestUrl]); From 8c9d8dcfdcc88d2d72bae8fb27f636c601f64d44 Mon Sep 17 00:00:00 2001 From: gansx <798622053@qq.com> Date: Tue, 27 Oct 2026 23:29:12 +0800 Subject: [PATCH 5/5] fix(engines): pin reviewed per-platform digests and complete install status identity --- packages/contracts/src/engine-lifecycle.ts | 20 ++++++++++++++++ .../src/features/execution-engines/feature.ts | 4 ++-- .../managed-engine-installer.ts | 24 +++++++++++++++++-- .../daemon/test/engine-lifecycle.test.mjs | 3 +++ 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/packages/contracts/src/engine-lifecycle.ts b/packages/contracts/src/engine-lifecycle.ts index 52ecccaa2..8568d88a5 100644 --- a/packages/contracts/src/engine-lifecycle.ts +++ b/packages/contracts/src/engine-lifecycle.ts @@ -21,6 +21,8 @@ export interface ManagedEnginePackage { /** Shown when the engine is not installable in this release. */ readonly manualGuidance?: string; readonly install?: ManagedEngineInstallLayout; + /** Reviewed per-platform sha512 digests for the pinned binary tarball. */ + readonly pinnedIntegrityByPlatform?: Readonly>; } /** How a managed package tarball maps onto the executable on disk. */ @@ -42,6 +44,14 @@ export const MANAGED_ENGINE_PACKAGES: readonly ManagedEnginePackage[] = [ maxVerified: "0.164.0", installable: true, commandName: "codex", + pinnedIntegrityByPlatform: { + "darwin-arm64": "sha512-pDizgOUAtq3/k3AbUFHbaU19WpYKCja+oFpNSTLKrDQj4lTUNSDuTPJip4uQVn2/1EipQdpQrGMOQBVuI1znAA==", + "darwin-x64": "sha512-lIe+udnguPGzBezkgbkj2Eaz0YqOhNXT7jja136Fj0sXfI+UKNS2icmaK14GcoRAgeVEpDTtC1ftamWBPmD1zg==", + "linux-x64": "sha512-XLAoaWsGOT2khzl+P4FYDPTkzAr9W0VFXFaVkqlFdkM0soa1gH/4S0wSD57Ek3HHwkirAEGz2/Mwehseh+l5Mg==", + "linux-arm64": "sha512-LL5iTQjyDL4YRX44EWqhIfEQ5uGnmgxkQBJSxjZSeJ8L1Og83pdlzUJW/PRJ76oaVwOVgh6HXwuPEiBNEHU4lg==", + "win32-x64": "sha512-urWPhwh9YavuoAPIkmVYKBTtd5OtGVL4Ki0Fb28dhK/Mz6Pt4LSy+gbRrZFz5+RXrw9ubvXuXDCcd8beYcWhDg==", + "win32-arm64": "sha512-Zkzt8HNmB/vOnlDo5D7IOlrt5rHaxYQB7iGbNP7bHcXZtrk6gaD7UriwaieGYJpcf8DqAT/0tqzY4xbs8ZwbmQ==", + }, install: { binaryPackageName: () => "@openai/codex", binaryVersion: (pinnedVersion, platformKey) => pinnedVersion + "-" + platformKey, @@ -56,6 +66,16 @@ export const MANAGED_ENGINE_PACKAGES: readonly ManagedEnginePackage[] = [ maxVerified: "2.1.311", installable: true, commandName: "claude", + pinnedIntegrityByPlatform: { + "darwin-arm64": "sha512-PHxqWpXJ7ED6ZD+2xNiTfiPoK9Aq5siPMhZ2lLHwA1HB10XluHP4dSJ6YSA24Hb4cD/P3nTlhFMauk2VPdMMNA==", + "darwin-x64": "sha512-DEMAnoIk6qVaZ7r+o/QsFH532HOO9c6I+0mE2WuTygq5H8Gr7jgzpK7HVB6d1xzAuliu6MEw32G+oo//gYuvqw==", + "linux-x64": "sha512-dk1lVMt7n+NlYucKM7dLp/PfrK32pa/4oKQkacfazlSj8rG+hkH67wnDnaFG9Gs2al3OjK8PTVHgZ2WGHXoWUg==", + "linux-arm64": "sha512-yZwDmtXmoZcFcCjCaoznOKqjrjjdQyc6PVuh6brANqQcaKpP+WZGuFlgUjgQh86u8HBybHZBB60WWOumKpO6uQ==", + "linux-x64-musl": "sha512-/SY8KhtVq5HRIdJu6Ow1ImkAplgL46J88j8vhH5FTZaNPVBjyk4A4yuIFMgyy8dVaNgVXxlpjXIEnfX39uDq5Q==", + "linux-arm64-musl": "sha512-ymSGc6vv0QCcVQZCC2JG03P/upLraox+iXAG1DfnUU1OZBCIR9QncxINBEp6QgnKbqywwR2/ic3GD8hAz0Tiow==", + "win32-x64": "sha512-fKXnBqsAPxVeIc20kCdzI4GznhuCJxumy1ZbwkyIfgZRsZXKHzMaayrJ/Ro2O+Dfb/s9rG/gAqGkqJCsA3FgJg==", + "win32-arm64": "sha512-Gc9o60Ji5RuP6xm7MBJsLUJE/AGymq8HF11idETBANHnLqg4uITD4O3tdOFE0yR7y6zEz2wl5D/7n4NlrY16Yg==", + }, install: { binaryPackageName: (platformKey) => "@anthropic-ai/claude-code-" + platformKey, binaryVersion: (pinnedVersion) => pinnedVersion, diff --git a/packages/daemon/src/features/execution-engines/feature.ts b/packages/daemon/src/features/execution-engines/feature.ts index 613f7739b..ff2e12c25 100644 --- a/packages/daemon/src/features/execution-engines/feature.ts +++ b/packages/daemon/src/features/execution-engines/feature.ts @@ -96,7 +96,7 @@ export class EngineManagementFeature { } private installStatus(engineId: ExternalExecutionEngineId) { - return this.installs.get(engineId) ?? { phase: "idle" as const }; + return this.installs.get(engineId) ?? { engineId, phase: "idle" as const, updatedAt: new Date(0).toISOString() }; } private async install(engineId: ExternalExecutionEngineId, signal: AbortSignal) { @@ -105,7 +105,7 @@ export class EngineManagementFeature { const existing = this.installs.get(engineId); if (existing && (existing.phase === "downloading" || existing.phase === "verifying")) return existing; const mark = (phase: ManagedInstallPhase, extra: Record = {}) => { - const status = { phase, updatedAt: new Date().toISOString(), ...extra }; + const status = { engineId, phase, updatedAt: new Date().toISOString(), ...extra }; this.installs.set(engineId, status); return status; }; diff --git a/packages/daemon/src/features/execution-engines/managed-engine-installer.ts b/packages/daemon/src/features/execution-engines/managed-engine-installer.ts index ef1a1298d..98a9e308f 100644 --- a/packages/daemon/src/features/execution-engines/managed-engine-installer.ts +++ b/packages/daemon/src/features/execution-engines/managed-engine-installer.ts @@ -67,6 +67,18 @@ function readDist(metadata: Record): { tarball: string; integri } async function extractTarball(tarball: string, targetDir: string, spawnImpl: typeof spawn): Promise { + const entries = await new Promise((resolve, reject) => { + const child = spawnImpl("tar", ["-tzf", tarball], { stdio: ["ignore", "pipe", "pipe"] }); + let stdout = ""; + child.stdout?.on("data", (chunk: Buffer) => { stdout += chunk.toString("utf8"); }); + child.once("error", reject); + child.once("exit", (code) => (code === 0 ? resolve(stdout) : reject(new ManagedInstallError("managed_install_list_failed")))); + }); + for (const entry of entries.split("\n").filter(Boolean)) { + if (entry.startsWith("/") || entry.includes("..") || entry.includes("\\")) { + throw new ManagedInstallError("managed_install_archive_entry_rejected"); + } + } await mkdir(targetDir, { recursive: true }); await new Promise((resolve, reject) => { const child = spawnImpl("tar", ["-xzf", tarball, "-C", targetDir], { stdio: ["ignore", "ignore", "pipe"] }); @@ -84,6 +96,8 @@ export interface InstallManagedEngineOptions { readonly platform?: NodeJS.Platform; readonly arch?: string; readonly now?: () => Date; + /** Testing seam: a fixture package record with the pin matching the synthetic tarball. */ + readonly packageOverride?: ManagedEnginePackage; } /** Download, verify and install the pinned engine package under the user root. */ @@ -92,7 +106,7 @@ export async function installManagedEngine( userPaths: Pick, options: InstallManagedEngineOptions = {}, ): Promise { - const pkg = getManagedEnginePackage(engineId); + const pkg = options.packageOverride ?? getManagedEnginePackage(engineId); if (!pkg?.installable || !pkg.install) throw new ManagedInstallError(`managed_install_unsupported_engine:${engineId}`); const platform = options.platform ?? process.platform; const arch = options.arch ?? process.arch; @@ -105,6 +119,12 @@ export async function installManagedEngine( const binaryVersion = pkg.install.binaryVersion(pkg.pinnedVersion, target.platformKey); const metadata = await fetchJson(fetchImpl, `https://registry.npmjs.org/${binaryPackage}/${binaryVersion}`, options.signal); const dist = readDist(metadata); + const tarballUrl = new URL(dist.tarball); + if (tarballUrl.protocol !== "https:" || tarballUrl.hostname !== "registry.npmjs.org") { + throw new ManagedInstallError("managed_install_tarball_host_rejected"); + } + const pinnedIntegrity = pkg.pinnedIntegrityByPlatform?.[target.platformKey]; + if (!pinnedIntegrity) throw new ManagedInstallError(`managed_install_unpinned_platform:${target.platformKey}`); const root = await mkdtemp(join(tmpdir(), "ling-engine-install-")); try { @@ -113,7 +133,7 @@ export async function installManagedEngine( if (!response.ok) throw new ManagedInstallError(`managed_install_download_http_${response.status}`); const bytes = Buffer.from(await response.arrayBuffer()); const digest = `sha512-${createHash("sha512").update(bytes).digest("base64")}`; - if (digest !== dist.integrity) throw new ManagedInstallError("managed_install_integrity_mismatch"); + if (digest !== pinnedIntegrity || digest !== dist.integrity) throw new ManagedInstallError("managed_install_integrity_mismatch"); await writeFile(tarballPath, bytes); const extractDir = join(root, "extract"); diff --git a/packages/daemon/test/engine-lifecycle.test.mjs b/packages/daemon/test/engine-lifecycle.test.mjs index 32c546b02..4cfd258b2 100644 --- a/packages/daemon/test/engine-lifecycle.test.mjs +++ b/packages/daemon/test/engine-lifecycle.test.mjs @@ -93,7 +93,10 @@ echo "2.1.311 (Claude Code)" `; const tarball = await packTarball({ "package/claude": binary }); const metadata = { dist: { tarball: "https://registry.npmjs.org/@anthropic-ai/claude-code-darwin-arm64/-/claude-code-darwin-arm64-2.1.311.tgz", integrity: tarball.integrity } }; + const contracts = await import("@ling-stack/contracts"); + const base = contracts.getManagedEnginePackage("claude-agent-sdk"); const result = await installManagedEngine("claude-agent-sdk", { rootDir }, { + packageOverride: { ...base, pinnedIntegrityByPlatform: { "darwin-arm64": tarball.integrity } }, platform: "darwin", arch: "arm64", fetchImpl: registryFetch(metadata, tarball), }); assert.equal(result.version, "2.1.311");