+ {calls.map((call, index) => {
+ const func = aiChatFunctionsService.getFunction(call.functionName);
+ const name = func?.name || call.functionName;
+ const args: Array<[string, any]> = Object.entries(call.arguments || {});
+ const firstArg = args[0]?.[1];
+
+ return (
+
+
+
+ {name}
+
+ {firstArg && (
+
+ {String(firstArg)}
+
+ )}
+
+ }
+ >
+
+ {func?.description && (
+
+ {func.description}
+
+ )}
+ {args.length > 0 &&
}
+
+
+
+ );
+ })}
+
+ );
+});
diff --git a/webapp/packages/plugin-ai-chat/src/AIChat/AIChatMessage/AIChatFunctionFormatter/AIChatFunctionConfirmationActions.tsx b/webapp/packages/plugin-ai-chat/src/AIChat/AIChatMessage/AIChatFunctionFormatter/AIChatFunctionConfirmationActions.tsx
new file mode 100644
index 00000000000..64f70e5e3ea
--- /dev/null
+++ b/webapp/packages/plugin-ai-chat/src/AIChat/AIChatMessage/AIChatFunctionFormatter/AIChatFunctionConfirmationActions.tsx
@@ -0,0 +1,35 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import { observer } from 'mobx-react-lite';
+
+import { Button } from '@dbeaver/ui-kit';
+import { useService } from '@cloudbeaver/core-di';
+import { useTranslate } from '@cloudbeaver/core-blocks';
+
+import { AIChatMessagesResource, type IAIFunctionConfirmationMessage } from '../AIChatMessagesResource.js';
+
+interface Props {
+ message: IAIFunctionConfirmationMessage;
+}
+
+export const AIChatFunctionConfirmationActions = observer