diff --git a/packages/tui/src/routes/session/index.tsx b/packages/tui/src/routes/session/index.tsx index baad5abd13..a6cf7532fc 100644 --- a/packages/tui/src/routes/session/index.tsx +++ b/packages/tui/src/routes/session/index.tsx @@ -111,6 +111,7 @@ export function Session() { const route = useRouteData("session") const { navigate } = useRoute() const data = useData() + const local = useLocal() const paths = useTuiPaths() const configState = useConfig() const config = configState.data @@ -184,6 +185,24 @@ export function Session() { const scrollAcceleration = createMemo(() => getScrollAcceleration(config)) const toast = useToast() const client = useClient() + const autoApproved = new Set() + createEffect(() => { + if (local.permission.mode !== "auto") return + permissions().forEach((request) => { + if (autoApproved.has(request.id)) return + autoApproved.add(request.id) + void client.api.permission + .reply({ + sessionID: request.sessionID, + reply: "once", + requestID: request.id, + }) + .catch((error) => { + autoApproved.delete(request.id) + toast.error(error) + }) + }) + }) const editor = useEditorContext() const rows = createSessionRows(() => route.sessionID) const boundaries = createMemo(() => messageBoundaryIDs(rows, messages()))