Bläddra i källkod

feat(app): auto-accept all permissions mode

Adam 1 månad sedan
förälder
incheckning
7e6a007c35

+ 13 - 6
packages/app/src/components/prompt-input.tsx

@@ -1048,6 +1048,11 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
   }
 
   const variants = createMemo(() => ["default", ...local.model.variant.list()])
+  const accepting = createMemo(() => {
+    const id = params.id
+    if (!id) return false
+    return permission.isAutoAccepting(id, sdk.directory)
+  })
 
   return (
     <div class="relative size-full _max-h-[320px] flex flex-col gap-0">
@@ -1233,7 +1238,9 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
                 <TooltipKeybind
                   placement="top"
                   gutter={8}
-                  title={language.t("command.permissions.autoaccept.enable")}
+                  title={language.t(
+                    accepting() ? "command.permissions.autoaccept.disable" : "command.permissions.autoaccept.enable",
+                  )}
                   keybind={command.keybind("permissions.autoaccept")}
                 >
                   <Button
@@ -1242,20 +1249,20 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
                     onClick={() => permission.toggleAutoAccept(params.id!, sdk.directory)}
                     classList={{
                       "_hidden group-hover/prompt-input:flex size-6 items-center justify-center": true,
-                      "text-text-base": !permission.isAutoAccepting(params.id!, sdk.directory),
-                      "hover:bg-surface-success-base": permission.isAutoAccepting(params.id!, sdk.directory),
+                      "text-text-base": !accepting(),
+                      "hover:bg-surface-success-base": accepting(),
                     }}
                     aria-label={
-                      permission.isAutoAccepting(params.id!, sdk.directory)
+                      accepting()
                         ? language.t("command.permissions.autoaccept.disable")
                         : language.t("command.permissions.autoaccept.enable")
                     }
-                    aria-pressed={permission.isAutoAccepting(params.id!, sdk.directory)}
+                    aria-pressed={accepting()}
                   >
                     <Icon
                       name="chevron-double-right"
                       size="small"
-                      classList={{ "text-icon-success-base": permission.isAutoAccepting(params.id!, sdk.directory) }}
+                      classList={{ "text-icon-success-base": accepting() }}
                     />
                   </Button>
                 </TooltipKeybind>

+ 25 - 18
packages/app/src/context/permission.tsx

@@ -16,10 +16,6 @@ type PermissionRespondFn = (input: {
   directory?: string
 }) => void
 
-function shouldAutoAccept(perm: PermissionRequest) {
-  return perm.permission === "edit"
-}
-
 function isNonAllowRule(rule: unknown) {
   if (!rule) return false
   if (typeof rule === "string") return rule !== "allow"
@@ -40,10 +36,7 @@ function hasPermissionPromptRules(permission: unknown) {
   if (Array.isArray(permission)) return false
 
   const config = permission as Record<string, unknown>
-  if (isNonAllowRule(config.edit)) return true
-  if (isNonAllowRule(config.write)) return true
-
-  return false
+  return Object.values(config).some(isNonAllowRule)
 }
 
 export const { use: usePermission, provider: PermissionProvider } = createSimpleContext({
@@ -61,9 +54,25 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
     })
 
     const [store, setStore, _, ready] = persisted(
-      Persist.global("permission", ["permission.v3"]),
+      {
+        ...Persist.global("permission", ["permission.v3"]),
+        migrate(value) {
+          if (!value || typeof value !== "object" || Array.isArray(value)) return value
+
+          const data = value as Record<string, unknown>
+          if (data.autoAccept) return value
+
+          return {
+            ...data,
+            autoAccept:
+              typeof data.autoAcceptEdits === "object" && data.autoAcceptEdits && !Array.isArray(data.autoAcceptEdits)
+                ? data.autoAcceptEdits
+                : {},
+          }
+        },
+      },
       createStore({
-        autoAcceptEdits: {} as Record<string, boolean>,
+        autoAccept: {} as Record<string, boolean>,
       }),
     )
 
@@ -112,7 +121,7 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
 
     function isAutoAccepting(sessionID: string, directory?: string) {
       const key = acceptKey(sessionID, directory)
-      return store.autoAcceptEdits[key] ?? store.autoAcceptEdits[sessionID] ?? false
+      return store.autoAccept[key] ?? store.autoAccept[sessionID] ?? false
     }
 
     function bumpEnableVersion(sessionID: string, directory?: string) {
@@ -128,7 +137,6 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
 
       const perm = event.properties
       if (!isAutoAccepting(perm.sessionID, e.name)) return
-      if (!shouldAutoAccept(perm)) return
 
       respondOnce(perm, e.name)
     })
@@ -139,8 +147,8 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
       const version = bumpEnableVersion(sessionID, directory)
       setStore(
         produce((draft) => {
-          draft.autoAcceptEdits[key] = true
-          delete draft.autoAcceptEdits[sessionID]
+          draft.autoAccept[key] = true
+          delete draft.autoAccept[sessionID]
         }),
       )
 
@@ -152,7 +160,6 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
           for (const perm of x.data ?? []) {
             if (!perm?.id) continue
             if (perm.sessionID !== sessionID) continue
-            if (!shouldAutoAccept(perm)) continue
             respondOnce(perm, directory)
           }
         })
@@ -164,8 +171,8 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
       const key = directory ? acceptKey(sessionID, directory) : undefined
       setStore(
         produce((draft) => {
-          if (key) delete draft.autoAcceptEdits[key]
-          delete draft.autoAcceptEdits[sessionID]
+          if (key) delete draft.autoAccept[key]
+          delete draft.autoAccept[sessionID]
         }),
       )
     }
@@ -174,7 +181,7 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
       ready,
       respond,
       autoResponds(permission: PermissionRequest, directory?: string) {
-        return isAutoAccepting(permission.sessionID, directory) && shouldAutoAccept(permission)
+        return isAutoAccepting(permission.sessionID, directory)
       },
       isAutoAccepting,
       toggleAutoAccept(sessionID: string, directory: string) {

+ 6 - 6
packages/app/src/i18n/ar.ts

@@ -65,8 +65,8 @@ export const dict = {
   "command.model.variant.cycle.description": "التبديل إلى مستوى الجهد التالي",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "قبول التعديلات تلقائيًا",
-  "command.permissions.autoaccept.disable": "إيقاف قبول التعديلات تلقائيًا",
+  "command.permissions.autoaccept.enable": "قبول الأذونات تلقائيًا",
+  "command.permissions.autoaccept.disable": "إيقاف قبول الأذونات تلقائيًا",
   "command.workspace.toggle": "تبديل مساحات العمل",
   "command.workspace.toggle.description": "تمكين أو تعطيل مساحات العمل المتعددة في الشريط الجانبي",
   "command.session.undo": "تراجع",
@@ -366,10 +366,10 @@ export const dict = {
   "toast.workspace.enabled.description": "الآن يتم عرض عدة worktrees في الشريط الجانبي",
   "toast.workspace.disabled.title": "تم تعطيل مساحات العمل",
   "toast.workspace.disabled.description": "يتم عرض worktree الرئيسي فقط في الشريط الجانبي",
-  "toast.permissions.autoaccept.on.title": "قبول التعديلات تلقائيًا",
-  "toast.permissions.autoaccept.on.description": "سيتم الموافقة تلقائيًا على أذونات التحرير والكتابة",
-  "toast.permissions.autoaccept.off.title": "توقف قبول التعديلات تلقائيًا",
-  "toast.permissions.autoaccept.off.description": "ستتطلب أذونات التحرير والكتابة موافقة",
+  "toast.permissions.autoaccept.on.title": "يتم قبول الأذونات تلقائيًا",
+  "toast.permissions.autoaccept.on.description": "ستتم الموافقة على طلبات الأذونات تلقائيًا",
+  "toast.permissions.autoaccept.off.title": "تم إيقاف قبول الأذونات تلقائيًا",
+  "toast.permissions.autoaccept.off.description": "ستتطلب طلبات الأذونات موافقة",
   "toast.model.none.title": "لم يتم تحديد نموذج",
   "toast.model.none.description": "قم بتوصيل موفر لتلخيص هذه الجلسة",
   "toast.file.loadFailed.title": "فشل تحميل الملف",

+ 6 - 6
packages/app/src/i18n/br.ts

@@ -65,8 +65,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Mudar para o próximo nível de esforço",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Aceitar edições automaticamente",
-  "command.permissions.autoaccept.disable": "Parar de aceitar edições automaticamente",
+  "command.permissions.autoaccept.enable": "Aceitar permissões automaticamente",
+  "command.permissions.autoaccept.disable": "Parar de aceitar permissões automaticamente",
   "command.workspace.toggle": "Alternar espaços de trabalho",
   "command.workspace.toggle.description": "Habilitar ou desabilitar múltiplos espaços de trabalho na barra lateral",
   "command.session.undo": "Desfazer",
@@ -367,10 +367,10 @@ export const dict = {
   "toast.workspace.enabled.description": "Várias worktrees agora são exibidas na barra lateral",
   "toast.workspace.disabled.title": "Espaços de trabalho desativados",
   "toast.workspace.disabled.description": "Apenas a worktree principal é exibida na barra lateral",
-  "toast.permissions.autoaccept.on.title": "Aceitando edições automaticamente",
-  "toast.permissions.autoaccept.on.description": "Permissões de edição e escrita serão aprovadas automaticamente",
-  "toast.permissions.autoaccept.off.title": "Parou de aceitar edições automaticamente",
-  "toast.permissions.autoaccept.off.description": "Permissões de edição e escrita exigirão aprovação",
+  "toast.permissions.autoaccept.on.title": "Aceitando permissões automaticamente",
+  "toast.permissions.autoaccept.on.description": "Solicitações de permissão serão aprovadas automaticamente",
+  "toast.permissions.autoaccept.off.title": "Parou de aceitar permissões automaticamente",
+  "toast.permissions.autoaccept.off.description": "Solicitações de permissão exigirão aprovação",
   "toast.model.none.title": "Nenhum modelo selecionado",
   "toast.model.none.description": "Conecte um provedor para resumir esta sessão",
   "toast.file.loadFailed.title": "Falha ao carregar arquivo",

+ 6 - 6
packages/app/src/i18n/bs.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Prebaci na sljedeći nivo",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Automatski prihvataj izmjene",
-  "command.permissions.autoaccept.disable": "Zaustavi automatsko prihvatanje izmjena",
+  "command.permissions.autoaccept.enable": "Automatski prihvati dozvole",
+  "command.permissions.autoaccept.disable": "Zaustavi automatsko prihvatanje dozvola",
   "command.workspace.toggle": "Prikaži/sakrij radne prostore",
   "command.workspace.toggle.description": "Omogući ili onemogući više radnih prostora u bočnoj traci",
   "command.session.undo": "Poništi",
@@ -405,10 +405,10 @@ export const dict = {
   "toast.workspace.disabled.title": "Radni prostori onemogućeni",
   "toast.workspace.disabled.description": "Samo glavni worktree se prikazuje u bočnoj traci",
 
-  "toast.permissions.autoaccept.on.title": "Automatsko prihvatanje izmjena",
-  "toast.permissions.autoaccept.on.description": "Dozvole za izmjene i pisanje biće automatski odobrene",
-  "toast.permissions.autoaccept.off.title": "Zaustavljeno automatsko prihvatanje izmjena",
-  "toast.permissions.autoaccept.off.description": "Dozvole za izmjene i pisanje zahtijevaće odobrenje",
+  "toast.permissions.autoaccept.on.title": "Automatsko prihvatanje dozvola",
+  "toast.permissions.autoaccept.on.description": "Zahtjevi za dozvole će biti automatski odobreni",
+  "toast.permissions.autoaccept.off.title": "Zaustavljeno automatsko prihvatanje dozvola",
+  "toast.permissions.autoaccept.off.description": "Zahtjevi za dozvole će zahtijevati odobrenje",
 
   "toast.model.none.title": "Nije odabran model",
   "toast.model.none.description": "Poveži provajdera da sažmeš ovu sesiju",

+ 6 - 6
packages/app/src/i18n/da.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Skift til næste indsatsniveau",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Accepter ændringer automatisk",
-  "command.permissions.autoaccept.disable": "Stop automatisk accept af ændringer",
+  "command.permissions.autoaccept.enable": "Accepter tilladelser automatisk",
+  "command.permissions.autoaccept.disable": "Stop med at acceptere tilladelser automatisk",
   "command.workspace.toggle": "Skift arbejdsområder",
   "command.workspace.toggle.description": "Aktiver eller deaktiver flere arbejdsområder i sidebjælken",
   "command.session.undo": "Fortryd",
@@ -398,10 +398,10 @@ export const dict = {
   "toast.theme.title": "Tema skiftet",
   "toast.scheme.title": "Farveskema",
 
-  "toast.permissions.autoaccept.on.title": "Accepterer ændringer automatisk",
-  "toast.permissions.autoaccept.on.description": "Redigerings- og skrivetilladelser vil automatisk blive godkendt",
-  "toast.permissions.autoaccept.off.title": "Stoppede automatisk accept af ændringer",
-  "toast.permissions.autoaccept.off.description": "Redigerings- og skrivetilladelser vil kræve godkendelse",
+  "toast.permissions.autoaccept.on.title": "Accepterer tilladelser automatisk",
+  "toast.permissions.autoaccept.on.description": "Anmodninger om tilladelse godkendes automatisk",
+  "toast.permissions.autoaccept.off.title": "Stoppet med at acceptere tilladelser automatisk",
+  "toast.permissions.autoaccept.off.description": "Anmodninger om tilladelse vil kræve godkendelse",
 
   "toast.workspace.enabled.title": "Arbejdsområder aktiveret",
   "toast.workspace.enabled.description": "Flere worktrees vises nu i sidepanelet",

+ 6 - 6
packages/app/src/i18n/de.ts

@@ -69,8 +69,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Zum nächsten Aufwandslevel wechseln",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Änderungen automatisch akzeptieren",
-  "command.permissions.autoaccept.disable": "Automatische Annahme von Änderungen stoppen",
+  "command.permissions.autoaccept.enable": "Berechtigungen automatisch akzeptieren",
+  "command.permissions.autoaccept.disable": "Automatische Akzeptanz von Berechtigungen stoppen",
   "command.workspace.toggle": "Arbeitsbereiche umschalten",
   "command.workspace.toggle.description": "Mehrere Arbeitsbereiche in der Seitenleiste aktivieren oder deaktivieren",
   "command.session.undo": "Rückgängig",
@@ -374,10 +374,10 @@ export const dict = {
   "toast.workspace.enabled.description": "Mehrere Worktrees werden jetzt in der Seitenleiste angezeigt",
   "toast.workspace.disabled.title": "Arbeitsbereiche deaktiviert",
   "toast.workspace.disabled.description": "Nur der Haupt-Worktree wird in der Seitenleiste angezeigt",
-  "toast.permissions.autoaccept.on.title": "Änderungen werden automatisch akzeptiert",
-  "toast.permissions.autoaccept.on.description": "Bearbeitungs- und Schreibrechte werden automatisch genehmigt",
-  "toast.permissions.autoaccept.off.title": "Automatische Annahme von Änderungen gestoppt",
-  "toast.permissions.autoaccept.off.description": "Bearbeitungs- und Schreibrechte erfordern Genehmigung",
+  "toast.permissions.autoaccept.on.title": "Berechtigungen werden automatisch akzeptiert",
+  "toast.permissions.autoaccept.on.description": "Berechtigungsanfragen werden automatisch genehmigt",
+  "toast.permissions.autoaccept.off.title": "Automatische Akzeptanz von Berechtigungen gestoppt",
+  "toast.permissions.autoaccept.off.description": "Berechtigungsanfragen erfordern eine Genehmigung",
   "toast.model.none.title": "Kein Modell ausgewählt",
   "toast.model.none.description": "Verbinden Sie einen Anbieter, um diese Sitzung zusammenzufassen",
   "toast.file.loadFailed.title": "Datei konnte nicht geladen werden",

+ 6 - 6
packages/app/src/i18n/en.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Switch to the next effort level",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Auto-accept edits",
-  "command.permissions.autoaccept.disable": "Stop auto-accepting edits",
+  "command.permissions.autoaccept.enable": "Auto-accept permissions",
+  "command.permissions.autoaccept.disable": "Stop auto-accepting permissions",
   "command.workspace.toggle": "Toggle workspaces",
   "command.workspace.toggle.description": "Enable or disable multiple workspaces in the sidebar",
   "command.session.undo": "Undo",
@@ -404,10 +404,10 @@ export const dict = {
   "toast.workspace.disabled.title": "Workspaces disabled",
   "toast.workspace.disabled.description": "Only the main worktree is shown in the sidebar",
 
-  "toast.permissions.autoaccept.on.title": "Auto-accepting edits",
-  "toast.permissions.autoaccept.on.description": "Edit and write permissions will be automatically approved",
-  "toast.permissions.autoaccept.off.title": "Stopped auto-accepting edits",
-  "toast.permissions.autoaccept.off.description": "Edit and write permissions will require approval",
+  "toast.permissions.autoaccept.on.title": "Auto-accepting permissions",
+  "toast.permissions.autoaccept.on.description": "Permission requests will be automatically approved",
+  "toast.permissions.autoaccept.off.title": "Stopped auto-accepting permissions",
+  "toast.permissions.autoaccept.off.description": "Permission requests will require approval",
 
   "toast.model.none.title": "No model selected",
   "toast.model.none.description": "Connect a provider to summarize this session",

+ 6 - 6
packages/app/src/i18n/es.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Cambiar al siguiente nivel de esfuerzo",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Aceptar ediciones automáticamente",
-  "command.permissions.autoaccept.disable": "Dejar de aceptar ediciones automáticamente",
+  "command.permissions.autoaccept.enable": "Aceptar permisos automáticamente",
+  "command.permissions.autoaccept.disable": "Dejar de aceptar permisos automáticamente",
   "command.workspace.toggle": "Alternar espacios de trabajo",
   "command.workspace.toggle.description": "Habilitar o deshabilitar múltiples espacios de trabajo en la barra lateral",
   "command.session.undo": "Deshacer",
@@ -405,10 +405,10 @@ export const dict = {
   "toast.workspace.disabled.title": "Espacios de trabajo deshabilitados",
   "toast.workspace.disabled.description": "Solo se muestra el worktree principal en la barra lateral",
 
-  "toast.permissions.autoaccept.on.title": "Aceptando ediciones automáticamente",
-  "toast.permissions.autoaccept.on.description": "Los permisos de edición y escritura serán aprobados automáticamente",
-  "toast.permissions.autoaccept.off.title": "Se dejó de aceptar ediciones automáticamente",
-  "toast.permissions.autoaccept.off.description": "Los permisos de edición y escritura requerirán aprobación",
+  "toast.permissions.autoaccept.on.title": "Aceptando permisos automáticamente",
+  "toast.permissions.autoaccept.on.description": "Las solicitudes de permisos se aprobarán automáticamente",
+  "toast.permissions.autoaccept.off.title": "Se dejó de aceptar permisos automáticamente",
+  "toast.permissions.autoaccept.off.description": "Las solicitudes de permisos requerirán aprobación",
 
   "toast.model.none.title": "Ningún modelo seleccionado",
   "toast.model.none.description": "Conecta un proveedor para resumir esta sesión",

+ 6 - 8
packages/app/src/i18n/fr.ts

@@ -65,8 +65,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Passer au niveau d'effort suivant",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Accepter automatiquement les modifications",
-  "command.permissions.autoaccept.disable": "Arrêter l'acceptation automatique des modifications",
+  "command.permissions.autoaccept.enable": "Accepter automatiquement les permissions",
+  "command.permissions.autoaccept.disable": "Arrêter d'accepter automatiquement les permissions",
   "command.workspace.toggle": "Basculer les espaces de travail",
   "command.workspace.toggle.description": "Activer ou désactiver plusieurs espaces de travail dans la barre latérale",
   "command.session.undo": "Annuler",
@@ -368,12 +368,10 @@ export const dict = {
   "toast.workspace.enabled.description": "Plusieurs worktrees sont désormais affichés dans la barre latérale",
   "toast.workspace.disabled.title": "Espaces de travail désactivés",
   "toast.workspace.disabled.description": "Seul le worktree principal est affiché dans la barre latérale",
-  "toast.permissions.autoaccept.on.title": "Acceptation auto des modifications",
-  "toast.permissions.autoaccept.on.description":
-    "Les permissions de modification et d'écriture seront automatiquement approuvées",
-  "toast.permissions.autoaccept.off.title": "Arrêt acceptation auto des modifications",
-  "toast.permissions.autoaccept.off.description":
-    "Les permissions de modification et d'écriture nécessiteront une approbation",
+  "toast.permissions.autoaccept.on.title": "Acceptation automatique des permissions",
+  "toast.permissions.autoaccept.on.description": "Les demandes de permission seront approuvées automatiquement",
+  "toast.permissions.autoaccept.off.title": "Acceptation automatique des permissions arrêtée",
+  "toast.permissions.autoaccept.off.description": "Les demandes de permission nécessiteront une approbation",
   "toast.model.none.title": "Aucun modèle sélectionné",
   "toast.model.none.description": "Connectez un fournisseur pour résumer cette session",
   "toast.file.loadFailed.title": "Échec du chargement du fichier",

+ 6 - 6
packages/app/src/i18n/ja.ts

@@ -65,8 +65,8 @@ export const dict = {
   "command.model.variant.cycle.description": "次の思考レベルに切り替え",
   "command.prompt.mode.shell": "シェル",
   "command.prompt.mode.normal": "プロンプト",
-  "command.permissions.autoaccept.enable": "編集を自動承認",
-  "command.permissions.autoaccept.disable": "編集の自動承認を停止",
+  "command.permissions.autoaccept.enable": "権限を自動承認する",
+  "command.permissions.autoaccept.disable": "権限の自動承認を停止する",
   "command.workspace.toggle": "ワークスペースを切り替え",
   "command.workspace.toggle.description": "サイドバーでの複数のワークスペースの有効化・無効化",
   "command.session.undo": "元に戻す",
@@ -366,10 +366,10 @@ export const dict = {
   "toast.workspace.enabled.description": "サイドバーに複数のワークツリーが表示されます",
   "toast.workspace.disabled.title": "ワークスペースが無効になりました",
   "toast.workspace.disabled.description": "サイドバーにはメインのワークツリーのみが表示されます",
-  "toast.permissions.autoaccept.on.title": "編集を自動承認中",
-  "toast.permissions.autoaccept.on.description": "編集と書き込みの権限は自動的に承認されます",
-  "toast.permissions.autoaccept.off.title": "編集の自動承認を停止しました",
-  "toast.permissions.autoaccept.off.description": "編集と書き込みの権限には承認が必要です",
+  "toast.permissions.autoaccept.on.title": "権限を自動承認しています",
+  "toast.permissions.autoaccept.on.description": "権限の要求は自動的に承認されます",
+  "toast.permissions.autoaccept.off.title": "権限の自動承認を停止しました",
+  "toast.permissions.autoaccept.off.description": "権限の要求には承認が必要になります",
   "toast.model.none.title": "モデルが選択されていません",
   "toast.model.none.description": "このセッションを要約するにはプロバイダーを接続してください",
   "toast.file.loadFailed.title": "ファイルの読み込みに失敗しました",

+ 6 - 6
packages/app/src/i18n/ko.ts

@@ -69,8 +69,8 @@ export const dict = {
   "command.model.variant.cycle.description": "다음 생각 수준으로 전환",
   "command.prompt.mode.shell": "셸",
   "command.prompt.mode.normal": "프롬프트",
-  "command.permissions.autoaccept.enable": "편집 자동 수락",
-  "command.permissions.autoaccept.disable": "편집 자동 수락 중지",
+  "command.permissions.autoaccept.enable": "권한 자동 수락",
+  "command.permissions.autoaccept.disable": "권한 자동 수락 중지",
   "command.workspace.toggle": "작업 공간 전환",
   "command.workspace.toggle.description": "사이드바에서 다중 작업 공간 활성화 또는 비활성화",
   "command.session.undo": "실행 취소",
@@ -369,10 +369,10 @@ export const dict = {
   "toast.workspace.enabled.description": "이제 사이드바에 여러 작업 트리가 표시됩니다",
   "toast.workspace.disabled.title": "작업 공간 비활성화됨",
   "toast.workspace.disabled.description": "사이드바에 메인 작업 트리만 표시됩니다",
-  "toast.permissions.autoaccept.on.title": "편집 자동 수락 중",
-  "toast.permissions.autoaccept.on.description": "편집 및 쓰기 권한이 자동으로 승인됩니다",
-  "toast.permissions.autoaccept.off.title": "편집 자동 수락 중지됨",
-  "toast.permissions.autoaccept.off.description": "편집 및 쓰기 권한 승인이 필요합니다",
+  "toast.permissions.autoaccept.on.title": "권한 자동 수락 중",
+  "toast.permissions.autoaccept.on.description": "권한 요청이 자동으로 승인됩니다",
+  "toast.permissions.autoaccept.off.title": "권한 자동 수락 중지됨",
+  "toast.permissions.autoaccept.off.description": "권한 요청에 승인이 필요합니다",
   "toast.model.none.title": "선택된 모델 없음",
   "toast.model.none.description": "이 세션을 요약하려면 공급자를 연결하세요",
   "toast.file.loadFailed.title": "파일 로드 실패",

+ 6 - 6
packages/app/src/i18n/no.ts

@@ -74,8 +74,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Bytt til neste innsatsnivå",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Godta endringer automatisk",
-  "command.permissions.autoaccept.disable": "Slutt å godta endringer automatisk",
+  "command.permissions.autoaccept.enable": "Aksepter tillatelser automatisk",
+  "command.permissions.autoaccept.disable": "Stopp automatisk akseptering av tillatelser",
   "command.workspace.toggle": "Veksle arbeidsområder",
   "command.workspace.toggle.description": "Enable or disable multiple workspaces in the sidebar",
   "command.session.undo": "Angre",
@@ -406,10 +406,10 @@ export const dict = {
   "toast.workspace.disabled.title": "Arbeidsområder deaktivert",
   "toast.workspace.disabled.description": "Kun hoved-worktree vises i sidefeltet",
 
-  "toast.permissions.autoaccept.on.title": "Godtar endringer automatisk",
-  "toast.permissions.autoaccept.on.description": "Redigerings- og skrivetillatelser vil bli godkjent automatisk",
-  "toast.permissions.autoaccept.off.title": "Sluttet å godta endringer automatisk",
-  "toast.permissions.autoaccept.off.description": "Redigerings- og skrivetillatelser vil kreve godkjenning",
+  "toast.permissions.autoaccept.on.title": "Aksepterer tillatelser automatisk",
+  "toast.permissions.autoaccept.on.description": "Forespørsler om tillatelse vil bli godkjent automatisk",
+  "toast.permissions.autoaccept.off.title": "Stoppet automatisk akseptering av tillatelser",
+  "toast.permissions.autoaccept.off.description": "Forespørsler om tillatelse vil kreve godkjenning",
 
   "toast.model.none.title": "Ingen modell valgt",
   "toast.model.none.description": "Koble til en leverandør for å oppsummere denne sesjonen",

+ 6 - 6
packages/app/src/i18n/pl.ts

@@ -65,8 +65,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Przełącz na następny poziom wysiłku",
   "command.prompt.mode.shell": "Terminal",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "Automatyczne akceptowanie edycji",
-  "command.permissions.autoaccept.disable": "Zatrzymaj automatyczne akceptowanie edycji",
+  "command.permissions.autoaccept.enable": "Automatycznie akceptuj uprawnienia",
+  "command.permissions.autoaccept.disable": "Zatrzymaj automatyczne akceptowanie uprawnień",
   "command.workspace.toggle": "Przełącz przestrzenie robocze",
   "command.workspace.toggle.description": "Włącz lub wyłącz wiele przestrzeni roboczych na pasku bocznym",
   "command.session.undo": "Cofnij",
@@ -367,10 +367,10 @@ export const dict = {
   "toast.workspace.enabled.description": "Kilka worktree jest teraz wyświetlanych na pasku bocznym",
   "toast.workspace.disabled.title": "Przestrzenie robocze wyłączone",
   "toast.workspace.disabled.description": "Tylko główny worktree jest wyświetlany na pasku bocznym",
-  "toast.permissions.autoaccept.on.title": "Automatyczne akceptowanie edycji",
-  "toast.permissions.autoaccept.on.description": "Uprawnienia do edycji i zapisu będą automatycznie zatwierdzane",
-  "toast.permissions.autoaccept.off.title": "Zatrzymano automatyczne akceptowanie edycji",
-  "toast.permissions.autoaccept.off.description": "Uprawnienia do edycji i zapisu będą wymagały zatwierdzenia",
+  "toast.permissions.autoaccept.on.title": "Automatyczne akceptowanie uprawnień",
+  "toast.permissions.autoaccept.on.description": "Żądania uprawnień będą automatycznie zatwierdzane",
+  "toast.permissions.autoaccept.off.title": "Zatrzymano automatyczne akceptowanie uprawnień",
+  "toast.permissions.autoaccept.off.description": "Żądania uprawnień będą wymagały zatwierdzenia",
   "toast.model.none.title": "Nie wybrano modelu",
   "toast.model.none.description": "Połącz dostawcę, aby podsumować tę sesję",
   "toast.file.loadFailed.title": "Nie udało się załadować pliku",

+ 6 - 6
packages/app/src/i18n/ru.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "Переключиться к следующему уровню усилий",
   "command.prompt.mode.shell": "Оболочка",
   "command.prompt.mode.normal": "Промпт",
-  "command.permissions.autoaccept.enable": "Авто-принятие изменений",
-  "command.permissions.autoaccept.disable": "Прекратить авто-принятие изменений",
+  "command.permissions.autoaccept.enable": "Автоматически принимать разрешения",
+  "command.permissions.autoaccept.disable": "Остановить автоматическое принятие разрешений",
   "command.workspace.toggle": "Переключить рабочие пространства",
   "command.workspace.toggle.description": "Включить или отключить несколько рабочих пространств в боковой панели",
   "command.session.undo": "Отменить",
@@ -400,10 +400,10 @@ export const dict = {
   "toast.theme.title": "Тема переключена",
   "toast.scheme.title": "Цветовая схема",
 
-  "toast.permissions.autoaccept.on.title": "Авто-принятие изменений",
-  "toast.permissions.autoaccept.on.description": "Разрешения на редактирование и запись будут автоматически одобрены",
-  "toast.permissions.autoaccept.off.title": "Авто-принятие остановлено",
-  "toast.permissions.autoaccept.off.description": "Редактирование и запись потребуют подтверждения",
+  "toast.permissions.autoaccept.on.title": "Разрешения принимаются автоматически",
+  "toast.permissions.autoaccept.on.description": "Запросы на разрешения будут одобряться автоматически",
+  "toast.permissions.autoaccept.off.title": "Автоматическое принятие разрешений остановлено",
+  "toast.permissions.autoaccept.off.description": "Запросы на разрешения будут требовать одобрения",
 
   "toast.workspace.enabled.title": "Рабочие пространства включены",
   "toast.workspace.enabled.description": "В боковой панели теперь отображаются несколько рабочих деревьев",

+ 6 - 6
packages/app/src/i18n/th.ts

@@ -71,8 +71,8 @@ export const dict = {
   "command.model.variant.cycle.description": "สลับไปยังระดับความพยายามถัดไป",
   "command.prompt.mode.shell": "เชลล์",
   "command.prompt.mode.normal": "พรอมต์",
-  "command.permissions.autoaccept.enable": "ยอมรับการแก้ไขโดยอัตโนมัติ",
-  "command.permissions.autoaccept.disable": "หยุดยอมรับการแก้ไขโดยอัตโนมัติ",
+  "command.permissions.autoaccept.enable": "ยอมรับสิทธิ์โดยอัตโนมัติ",
+  "command.permissions.autoaccept.disable": "หยุดยอมรับสิทธิ์โดยอัตโนมัติ",
   "command.workspace.toggle": "สลับพื้นที่ทำงาน",
   "command.workspace.toggle.description": "เปิดหรือปิดใช้งานพื้นที่ทำงานหลายรายการในแถบด้านข้าง",
   "command.session.undo": "ยกเลิก",
@@ -403,10 +403,10 @@ export const dict = {
   "toast.workspace.disabled.title": "ปิดใช้งานพื้นที่ทำงานแล้ว",
   "toast.workspace.disabled.description": "จะแสดงเฉพาะ worktree หลักในแถบด้านข้าง",
 
-  "toast.permissions.autoaccept.on.title": "กำลังยอมรับการแก้ไขโดยอัตโนมัติ",
-  "toast.permissions.autoaccept.on.description": "สิทธิ์การแก้ไขและจะได้รับเขียนการอนุมัติโดยอัตโนมัติ",
-  "toast.permissions.autoaccept.off.title": "หยุดยอมรับการแก้ไขโดยอัตโนมัติ",
-  "toast.permissions.autoaccept.off.description": "สิทธิ์การแก้ไขและเขียนจะต้องได้รับการอนุมัติ",
+  "toast.permissions.autoaccept.on.title": "กำลังยอมรับสิทธิ์โดยอัตโนมัติ",
+  "toast.permissions.autoaccept.on.description": "คำขอสิทธิ์จะได้รับการอนุมัติโดยอัตโนมัติ",
+  "toast.permissions.autoaccept.off.title": "หยุดยอมรับสิทธิ์โดยอัตโนมัติแล้ว",
+  "toast.permissions.autoaccept.off.description": "คำขอสิทธิ์จะต้องได้รับการอนุมัติ",
 
   "toast.model.none.title": "ไม่ได้เลือกโมเดล",
   "toast.model.none.description": "เชื่อมต่อผู้ให้บริการเพื่อสรุปเซสชันนี้",

+ 6 - 6
packages/app/src/i18n/zh.ts

@@ -96,8 +96,8 @@ export const dict = {
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
 
-  "command.permissions.autoaccept.enable": "自动接受编辑",
-  "command.permissions.autoaccept.disable": "停止自动接受编辑",
+  "command.permissions.autoaccept.enable": "自动接受权限",
+  "command.permissions.autoaccept.disable": "停止自动接受权限",
 
   "command.workspace.toggle": "切换工作区",
   "command.workspace.toggle.description": "在侧边栏启用或禁用多个工作区",
@@ -415,10 +415,10 @@ export const dict = {
   "toast.workspace.enabled.description": "侧边栏现在显示多个工作树",
   "toast.workspace.disabled.title": "工作区已禁用",
   "toast.workspace.disabled.description": "侧边栏只显示主工作树",
-  "toast.permissions.autoaccept.on.title": "自动接受编辑",
-  "toast.permissions.autoaccept.on.description": "编辑和写入权限将自动批",
-  "toast.permissions.autoaccept.off.title": "已停止自动接受编辑",
-  "toast.permissions.autoaccept.off.description": "编辑和写入权限将需要手动批准",
+  "toast.permissions.autoaccept.on.title": "正在自动接受权限",
+  "toast.permissions.autoaccept.on.description": "权限请求自动批",
+  "toast.permissions.autoaccept.off.title": "已停止自动接受权限",
+  "toast.permissions.autoaccept.off.description": "权限请求将需要批准",
   "toast.model.none.title": "未选择模型",
   "toast.model.none.description": "请先连接提供商以总结此会话",
   "toast.file.loadFailed.title": "加载文件失败",

+ 6 - 6
packages/app/src/i18n/zht.ts

@@ -75,8 +75,8 @@ export const dict = {
   "command.model.variant.cycle.description": "切換到下一個強度等級",
   "command.prompt.mode.shell": "Shell",
   "command.prompt.mode.normal": "Prompt",
-  "command.permissions.autoaccept.enable": "自動接受編輯",
-  "command.permissions.autoaccept.disable": "停止自動接受編輯",
+  "command.permissions.autoaccept.enable": "自動接受權限",
+  "command.permissions.autoaccept.disable": "停止自動接受權限",
   "command.workspace.toggle": "切換工作區",
   "command.workspace.toggle.description": "在側邊欄啟用或停用多個工作區",
   "command.session.undo": "復原",
@@ -402,10 +402,10 @@ export const dict = {
   "toast.workspace.disabled.title": "工作區已停用",
   "toast.workspace.disabled.description": "側邊欄只顯示主工作樹",
 
-  "toast.permissions.autoaccept.on.title": "自動接受編輯",
-  "toast.permissions.autoaccept.on.description": "編輯和寫入權限將自動獲准",
-  "toast.permissions.autoaccept.off.title": "已停止自動接受編輯",
-  "toast.permissions.autoaccept.off.description": "編輯和寫入權限將需要手動批准",
+  "toast.permissions.autoaccept.on.title": "正在自動接受權限",
+  "toast.permissions.autoaccept.on.description": "權限請求將被自動批准",
+  "toast.permissions.autoaccept.off.title": "已停止自動接受權限",
+  "toast.permissions.autoaccept.off.description": "權限請求將需要批准",
 
   "toast.model.none.title": "未選擇模型",
   "toast.model.none.description": "請先連線提供者以總結此工作階段",