From 34a6577f3a8d6e8490467c3762d3e04f8d74b509 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Sat, 11 Apr 2026 04:07:55 +0800 Subject: [PATCH] feat: ship permission/approval UI with mobile support and context usage ring --- static/src/App.vue | 39 ++- static/src/app/components.ts | 2 + static/src/app/methods/conversation.ts | 5 + static/src/app/methods/resources.ts | 3 + static/src/app/methods/taskPolling.ts | 44 +++ static/src/app/methods/ui.ts | 175 ++++++++++- static/src/app/state.ts | 21 ++ .../components/chat/actions/ToolAction.vue | 48 +-- .../components/chat/actions/toolRenderers.ts | 48 +-- static/src/components/input/InputComposer.vue | 128 +++++++- static/src/components/input/QuickMenu.vue | 9 + .../components/panels/ToolApprovalPanel.vue | 171 +++++++++++ .../personalization/PersonalizationDrawer.vue | 66 ++++ static/src/stores/personalization.ts | 18 ++ static/src/stores/ui.ts | 2 +- .../styles/components/input/_composer.scss | 181 +++++++++++ .../styles/components/overlays/_overlays.scss | 17 +- .../components/panels/_focus-panel.scss | 101 ------- .../styles/components/panels/_left-panel.scss | 8 +- .../components/panels/_right-panel.scss | 282 ++++++++++++++++++ static/src/styles/index.scss | 2 +- static/src/utils/chatDisplay.ts | 7 + 22 files changed, 1233 insertions(+), 144 deletions(-) create mode 100644 static/src/components/panels/ToolApprovalPanel.vue delete mode 100644 static/src/styles/components/panels/_focus-panel.scss create mode 100644 static/src/styles/components/panels/_right-panel.scss diff --git a/static/src/App.vue b/static/src/App.vue index 2e3cb93..7c57ac2 100644 --- a/static/src/App.vue +++ b/static/src/App.vue @@ -276,6 +276,10 @@ :block-token-panel="policyUiBlocks.block_token_panel" :block-compress-conversation="policyUiBlocks.block_compress_conversation" :block-conversation-review="policyUiBlocks.block_conversation_review" + :current-permission-mode="currentPermissionMode" + :permission-menu-open="permissionMenuOpen" + :permission-options="permissionModeOptions" + :current-context-tokens="currentContextTokens" @update:input-message="inputSetMessage" @input-change="handleInputChange" @input-focus="handleInputFocus" @@ -295,21 +299,33 @@ @toggle-focus-panel="handleFocusPanelToggleClick" @toggle-token-panel="handleTokenPanelToggleClick" @compress-conversation="handleCompressConversationClick" + @toggle-approval-panel="handleApprovalPanelToggleClick" @file-selected="handleFileSelected" @pick-images="openImagePicker" @pick-video="openVideoPicker" @remove-image="handleRemoveImage" @remove-video="handleRemoveVideo" @open-review="openReviewDialog" + @toggle-permission-menu="togglePermissionMenu" + @change-permission-mode="changePermissionMode" /> -
+