diff --git a/packages/ui/src/components/permission-approval-modal.tsx b/packages/ui/src/components/permission-approval-modal.tsx index 4e2aff614..33b6d2d32 100644 --- a/packages/ui/src/components/permission-approval-modal.tsx +++ b/packages/ui/src/components/permission-approval-modal.tsx @@ -12,6 +12,7 @@ import { } from "../stores/instances" import { ensureSessionParentExpanded, loadMessages, sessions as sessionStateSessions, setActiveSessionFromList } from "../stores/sessions" import { messageStoreBus } from "../stores/message-v2/bus" +import { PERMISSION_REJECT_REASON_MAX_LENGTH } from "./tool-call/permission-constants" const LazyToolCall = lazy(() => import("./tool-call")) @@ -136,6 +137,8 @@ const PermissionApprovalModal: Component = (props) const [loadingSession, setLoadingSession] = createSignal(null) const [permissionSubmitting, setPermissionSubmitting] = createSignal>(new Set()) const [permissionError, setPermissionError] = createSignal>(new Map()) + const [rejectingPermissionId, setRejectingPermissionId] = createSignal(null) + const [rejectReason, setRejectReason] = createSignal("") const setPermissionBusy = (permissionId: string, busy: boolean) => { setPermissionSubmitting((prev) => { @@ -155,7 +158,7 @@ const PermissionApprovalModal: Component = (props) }) } - async function handlePermissionDecision(permission: PermissionRequestLike, response: "once" | "always" | "reject") { + async function handlePermissionDecision(permission: PermissionRequestLike, response: "once" | "always" | "reject", message?: string) { const permissionId = permission?.id if (!permissionId) return @@ -166,7 +169,11 @@ const PermissionApprovalModal: Component = (props) try { const sessionId = getPermissionSessionId(permission) || "" - await sendPermissionResponse(props.instanceId, sessionId, permissionId, response) + await sendPermissionResponse(props.instanceId, sessionId, permissionId, response, message) + if (rejectingPermissionId() === permissionId) { + setRejectingPermissionId(null) + setRejectReason("") + } } catch (error) { setPermissionItemError( permissionId, @@ -370,34 +377,86 @@ const PermissionApprovalModal: Component = (props) {primaryTitle()} -
-
- - + + +
+
+ } + > +
+ +