diff --git a/mateclaw-ui/src/components/chat/ChatInput.vue b/mateclaw-ui/src/components/chat/ChatInput.vue
index c4515808..6ae1059c 100644
--- a/mateclaw-ui/src/components/chat/ChatInput.vue
+++ b/mateclaw-ui/src/components/chat/ChatInput.vue
@@ -64,7 +64,7 @@
{{ t('chat.approvalAllow') }}
- {{ pendingApproval.toolName }}
+ {{ getToolLabel(pendingApproval.toolName) }}
{{ t('chat.approvalExecute') }}
@@ -203,6 +203,7 @@
import { ref, computed, nextTick, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import { CloseBold, MagicStick, Microphone, Paperclip, Promotion, Select, Timer, WarningFilled } from '@element-plus/icons-vue'
+import { useToolLabel } from '@/composables/useToolLabel'
import type { ChatAttachment, PendingApprovalMeta, StreamPhase, QueuedMessage } from '@/types'
interface Props {
@@ -272,6 +273,7 @@ const emit = defineEmits<{
}>()
const { t } = useI18n()
+const { getToolLabel } = useToolLabel()
// 内部状态
const containerRef = ref(null)
diff --git a/mateclaw-ui/src/components/chat/MessageBubble.vue b/mateclaw-ui/src/components/chat/MessageBubble.vue
index 62c2d3e9..0eb470fc 100644
--- a/mateclaw-ui/src/components/chat/MessageBubble.vue
+++ b/mateclaw-ui/src/components/chat/MessageBubble.vue
@@ -89,7 +89,7 @@
- {{ tc.name }}
+ {{ getToolLabel(tc.name) }}
{{ truncateArgs(tc.arguments) }}
@@ -108,13 +108,13 @@
- {{ $t('chat.approvalWaiting') }} {{ pendingApproval.toolName }}
+ {{ $t('chat.approvalWaiting') }} {{ getToolLabel(pendingApproval.toolName) }}
- {{ $t('chat.approved') }}: {{ pendingApproval.toolName }}
+ {{ $t('chat.approved') }}: {{ getToolLabel(pendingApproval.toolName) }}
- {{ $t('chat.denied') }}: {{ pendingApproval.toolName }}
+ {{ $t('chat.denied') }}: {{ getToolLabel(pendingApproval.toolName) }}
@@ -279,6 +279,7 @@ import {
} from '@element-plus/icons-vue'
import { useMarkdownRenderer } from '@/composables/useMarkdownRenderer'
import { useAuthenticatedAttachment } from '@/composables/useAuthenticatedAttachment'
+import { useToolLabel } from '@/composables/useToolLabel'
import { http } from '@/api'
import TypingCursor from './TypingCursor.vue'
import BrowserTimeline from './BrowserTimeline.vue'
@@ -293,6 +294,7 @@ import type { ChatErrorInfo } from '@/types/chatError'
const { renderMarkdown } = useMarkdownRenderer()
const { t } = useI18n()
+const { getToolLabel } = useToolLabel()
const { blobUrls, loadAllImages, loadAllVideos, downloadFile, openImage, getDisplayUrl, revokeAll } = useAuthenticatedAttachment()
interface Props {
diff --git a/mateclaw-ui/src/components/chat/ToolCallSegment.vue b/mateclaw-ui/src/components/chat/ToolCallSegment.vue
index 586e0179..71339d76 100644
--- a/mateclaw-ui/src/components/chat/ToolCallSegment.vue
+++ b/mateclaw-ui/src/components/chat/ToolCallSegment.vue
@@ -1,12 +1,15 @@