feat: scheduled task permission auto-accept and composer-style editor toggles

This commit is contained in:
Bohdan Triapitsyn
2026-07-20 23:07:01 +03:00
parent ac24d321f4
commit 0e47b388d5
17 changed files with 114 additions and 22 deletions
+2
View File
@@ -296,6 +296,8 @@ export const dict = {
'sessions.scheduledTasks.editor.goal.aria': 'Run this task as a goal the agent pursues to completion',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Token budget',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Limit the goal to a token budget',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Auto-accept permissions',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Start the task session with permission auto-accept enabled',
'sessions.scheduledTasks.editor.actions.closeAria': 'Close',
'sessions.scheduledTasks.editor.actions.cancel': 'Cancel',
'sessions.scheduledTasks.editor.actions.save': 'Save',
+2
View File
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Ejecutar esta tarea como un objetivo que el agente persigue hasta completarlo",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Presupuesto de tokens",
"sessions.scheduledTasks.editor.goal.budgetAria": "Limitar el objetivo a un presupuesto de tokens",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Aceptar permisos automáticamente",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Iniciar la sesión de la tarea con la aceptación automática de permisos activada",
"sessions.scheduledTasks.editor.actions.closeAria": "Cerrar",
"sessions.scheduledTasks.editor.actions.cancel": "Cancelar",
"sessions.scheduledTasks.editor.actions.save": "Guardar",
+2
View File
@@ -139,6 +139,8 @@ export const dict = {
'sessions.scheduledTasks.editor.goal.aria': 'Exécuter cette tâche comme un objectif que l\'agent poursuit jusqu\'au bout',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Budget de tokens',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Limiter lobjectif à un budget de tokens',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Accepter automatiquement les autorisations',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Démarrer la session de la tâche avec lacceptation automatique des autorisations activée',
'sessions.scheduledTasks.editor.actions.closeAria': 'Fermer',
'sessions.scheduledTasks.editor.actions.cancel': 'Annuler',
'sessions.scheduledTasks.editor.actions.save': 'Sauvegarder',
+2
View File
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': 'このタスクをエージェントが完了まで追求するゴールとして実行します',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'トークン予算',
'sessions.scheduledTasks.editor.goal.budgetAria': 'ゴールをトークン予算で制限します',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '権限を自動承認',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '権限の自動承認を有効にしてタスクのセッションを開始します',
'sessions.scheduledTasks.editor.actions.closeAria': '閉じる',
'sessions.scheduledTasks.editor.actions.cancel': 'キャンセル',
'sessions.scheduledTasks.editor.actions.save': '保存',
+2
View File
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '이 작업을 에이전트가 완료까지 추진하는 목표로 실행합니다',
'sessions.scheduledTasks.editor.goal.budgetLabel': '토큰 예산',
'sessions.scheduledTasks.editor.goal.budgetAria': '목표를 토큰 예산으로 제한합니다',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '권한 자동 승인',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '권한 자동 승인이 켜진 상태로 작업 세션을 시작합니다',
'sessions.scheduledTasks.editor.actions.closeAria': '닫기',
'sessions.scheduledTasks.editor.actions.cancel': '취소',
'sessions.scheduledTasks.editor.actions.save': '저장',
+2
View File
@@ -391,6 +391,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': 'Uruchom to zadanie jako cel, do którego agent dąży aż do ukończenia',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Budżet tokenów',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Ogranicz cel budżetem tokenów',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Automatycznie akceptuj uprawnienia',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Uruchom sesję zadania z włączonym automatycznym akceptowaniem uprawnień',
'sessions.scheduledTasks.editor.actions.closeAria': 'Zamknij',
'sessions.scheduledTasks.editor.actions.cancel': 'Anuluj',
'sessions.scheduledTasks.editor.actions.save': 'Zapisz',
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Executar esta tarefa como um objetivo que o agente persegue até concluir",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Orçamento de tokens",
"sessions.scheduledTasks.editor.goal.budgetAria": "Limitar o objetivo a um orçamento de tokens",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Aceitar permissões automaticamente",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Iniciar a sessão da tarefa com a aceitação automática de permissões ativada",
"sessions.scheduledTasks.editor.actions.closeAria": "Fechar",
"sessions.scheduledTasks.editor.actions.cancel": "Cancelar",
"sessions.scheduledTasks.editor.actions.save": "Salvar",
+2
View File
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Виконати це завдання як ціль, яку агент веде до завершення",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Бюджет токенів",
"sessions.scheduledTasks.editor.goal.budgetAria": "Обмежити ціль бюджетом токенів",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Автоматично приймати дозволи",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Запускати сесію завдання з увімкненим автоматичним прийняттям дозволів",
"sessions.scheduledTasks.editor.actions.closeAria": "Закрити",
"sessions.scheduledTasks.editor.actions.cancel": "Скасувати",
"sessions.scheduledTasks.editor.actions.save": "Зберегти",
@@ -297,6 +297,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '将此任务作为代理持续推进直至完成的目标运行',
'sessions.scheduledTasks.editor.goal.budgetLabel': '令牌预算',
'sessions.scheduledTasks.editor.goal.budgetAria': '用令牌预算限制该目标',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '自动接受权限',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '启动任务会话时启用权限自动接受',
'sessions.scheduledTasks.editor.actions.closeAria': '关闭',
'sessions.scheduledTasks.editor.actions.cancel': '取消',
'sessions.scheduledTasks.editor.actions.save': '保存',
@@ -310,6 +310,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '將此任務作為代理持續推進直至完成的目標執行',
'sessions.scheduledTasks.editor.goal.budgetLabel': '權杖預算',
'sessions.scheduledTasks.editor.goal.budgetAria': '以權杖預算限制該目標',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '自動接受權限',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '啟動任務工作階段時啟用權限自動接受',
'sessions.scheduledTasks.editor.actions.closeAria': '關閉',
'sessions.scheduledTasks.editor.actions.cancel': '取消',
'sessions.scheduledTasks.editor.actions.save': '儲存',
+1
View File
@@ -23,6 +23,7 @@ export type ScheduledTask = {
agent?: string;
goalEnabled?: boolean;
goalTokenBudget?: number;
permissionAutoAccept?: boolean;
};
state: {
createdAt: number;
+14
View File
@@ -0,0 +1,14 @@
// Some ICU builds still expose pre-rename IANA timezone ids. Display (and
// persist going forward) the modern names.
const LEGACY_TIMEZONE_ALIASES: Record<string, string> = {
'Europe/Kiev': 'Europe/Kyiv',
'Asia/Calcutta': 'Asia/Kolkata',
'Asia/Saigon': 'Asia/Ho_Chi_Minh',
'Asia/Rangoon': 'Asia/Yangon',
'Asia/Katmandu': 'Asia/Kathmandu',
'America/Godthab': 'America/Nuuk',
'Atlantic/Faeroe': 'Atlantic/Faroe',
'Pacific/Enderbury': 'Pacific/Kanton',
};
export const canonicalizeTimezone = (timezone: string): string => LEGACY_TIMEZONE_ALIASES[timezone] ?? timezone;