mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 03:13:41 +08:00
feat(skill): demote Tools to Settings + rename MCP Connections
This commit is contained in:
parent
4f3276b9e6
commit
95144ef175
@ -244,7 +244,9 @@ export default {
|
||||
connect: 'Connect',
|
||||
system: 'System',
|
||||
datasources: 'Datasources',
|
||||
mcpServers: 'MCP Servers',
|
||||
mcpServers: 'MCP Connections',
|
||||
mcpConnections: 'MCP Connections',
|
||||
toolsCatalog: 'Tools (Catalog)',
|
||||
settingsGroup: 'Settings',
|
||||
agents: 'Agents',
|
||||
security: 'Security',
|
||||
@ -1046,9 +1048,9 @@ export default {
|
||||
},
|
||||
mcp: {
|
||||
kicker: 'Capability Bridge',
|
||||
title: 'MCP Server Management',
|
||||
title: 'MCP Connections',
|
||||
desc: 'Manage MCP (Model Context Protocol) server connections',
|
||||
addServer: 'Add Server',
|
||||
addServer: 'Add Connection',
|
||||
refreshAll: 'Refresh All',
|
||||
columns: {
|
||||
name: 'Name',
|
||||
@ -1071,8 +1073,8 @@ export default {
|
||||
streamable_http: 'HTTP',
|
||||
},
|
||||
modal: {
|
||||
newTitle: 'Add MCP Server',
|
||||
editTitle: 'Edit MCP Server',
|
||||
newTitle: 'Add MCP Connection',
|
||||
editTitle: 'Edit MCP Connection',
|
||||
},
|
||||
fields: {
|
||||
name: 'Name',
|
||||
@ -1109,16 +1111,16 @@ export default {
|
||||
latency: 'Latency {ms}ms',
|
||||
},
|
||||
messages: {
|
||||
loadFailed: 'Failed to load MCP servers',
|
||||
createSuccess: 'MCP server created',
|
||||
updateSuccess: 'MCP server updated',
|
||||
deleteSuccess: 'MCP server deleted',
|
||||
deleteConfirm: 'Delete MCP server "{name}"?',
|
||||
loadFailed: 'Failed to load MCP connections',
|
||||
createSuccess: 'MCP connection created',
|
||||
updateSuccess: 'MCP connection updated',
|
||||
deleteSuccess: 'MCP connection deleted',
|
||||
deleteConfirm: 'Delete MCP connection "{name}"?',
|
||||
toggleSuccess: 'Status updated',
|
||||
refreshSuccess: 'All servers refreshed',
|
||||
refreshSuccess: 'All connections refreshed',
|
||||
saveFailed: 'Failed to save',
|
||||
empty: 'No MCP servers',
|
||||
emptyDesc: 'Add an MCP server to extend your agents\' capabilities',
|
||||
empty: 'No MCP connections',
|
||||
emptyDesc: 'Add an MCP connection to extend your agents\' capabilities',
|
||||
},
|
||||
},
|
||||
sessions: {
|
||||
@ -1150,8 +1152,9 @@ export default {
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: 'Tools',
|
||||
desc: 'Manage tools available to your agents',
|
||||
kicker: 'Developer Catalog',
|
||||
title: 'Tools (Catalog)',
|
||||
desc: 'Atomic actions exposed by installed skills. Use the Skills page for end-user binding.',
|
||||
registerButton: 'Register Tool',
|
||||
columns: {
|
||||
tool: 'Tool',
|
||||
|
||||
@ -244,7 +244,9 @@ export default {
|
||||
tools: '工具',
|
||||
plugins: '插件',
|
||||
datasources: '数据源',
|
||||
mcpServers: 'MCP 服务',
|
||||
mcpServers: 'MCP 连接',
|
||||
mcpConnections: 'MCP 连接',
|
||||
toolsCatalog: '工具目录',
|
||||
settingsGroup: '设置',
|
||||
agents: '智能体',
|
||||
security: '安全',
|
||||
@ -1046,9 +1048,9 @@ export default {
|
||||
},
|
||||
mcp: {
|
||||
kicker: '能力桥接',
|
||||
title: 'MCP 服务管理',
|
||||
title: 'MCP 连接',
|
||||
desc: '管理 MCP (Model Context Protocol) 服务器连接',
|
||||
addServer: '添加服务',
|
||||
addServer: '添加连接',
|
||||
refreshAll: '全量刷新',
|
||||
columns: {
|
||||
name: '名称',
|
||||
@ -1071,8 +1073,8 @@ export default {
|
||||
streamable_http: 'HTTP',
|
||||
},
|
||||
modal: {
|
||||
newTitle: '添加 MCP 服务',
|
||||
editTitle: '编辑 MCP 服务',
|
||||
newTitle: '添加 MCP 连接',
|
||||
editTitle: '编辑 MCP 连接',
|
||||
},
|
||||
fields: {
|
||||
name: '名称',
|
||||
@ -1109,16 +1111,16 @@ export default {
|
||||
latency: '延迟 {ms}ms',
|
||||
},
|
||||
messages: {
|
||||
loadFailed: '加载 MCP 服务列表失败',
|
||||
createSuccess: 'MCP 服务已创建',
|
||||
updateSuccess: 'MCP 服务已更新',
|
||||
deleteSuccess: 'MCP 服务已删除',
|
||||
deleteConfirm: '确认删除 MCP 服务 "{name}" 吗?',
|
||||
loadFailed: '加载 MCP 连接列表失败',
|
||||
createSuccess: 'MCP 连接已创建',
|
||||
updateSuccess: 'MCP 连接已更新',
|
||||
deleteSuccess: 'MCP 连接已删除',
|
||||
deleteConfirm: '确认删除 MCP 连接 "{name}" 吗?',
|
||||
toggleSuccess: '状态已更新',
|
||||
refreshSuccess: '全量刷新完成',
|
||||
saveFailed: '保存失败',
|
||||
empty: '暂无 MCP 服务',
|
||||
emptyDesc: '添加一个 MCP 服务来扩展 Agent 的能力',
|
||||
empty: '暂无 MCP 连接',
|
||||
emptyDesc: '添加一个 MCP 连接来扩展 Agent 的能力',
|
||||
},
|
||||
},
|
||||
sessions: {
|
||||
@ -1150,8 +1152,9 @@ export default {
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
title: '工具管理',
|
||||
desc: '管理 Agent 可用的工具',
|
||||
kicker: '开发者目录',
|
||||
title: '工具目录',
|
||||
desc: '已安装 Skill 暴露的原子动作。终端绑定请使用 Skills 页。',
|
||||
registerButton: '注册工具',
|
||||
columns: {
|
||||
tool: '工具',
|
||||
|
||||
@ -55,12 +55,8 @@ const router = createRouter({
|
||||
component: () => import('@/views/SkillMarket.vue'),
|
||||
meta: { title: 'Skills' },
|
||||
},
|
||||
{
|
||||
path: 'tools',
|
||||
name: 'Tools',
|
||||
component: () => import('@/views/Tools.vue'),
|
||||
meta: { title: 'Tools' },
|
||||
},
|
||||
// Tools 顶层入口已降级到 Settings ▸ Tools (Catalog) (RFC-090 Phase 1)
|
||||
// 旧路径 /tools 由下方 redirect 兼容
|
||||
{
|
||||
path: 'plugins',
|
||||
name: 'Plugins',
|
||||
@ -157,7 +153,13 @@ const router = createRouter({
|
||||
path: 'mcp-servers',
|
||||
name: 'SettingsMcpServers',
|
||||
component: () => import('@/views/McpServers.vue'),
|
||||
meta: { title: 'Settings - MCP Servers' },
|
||||
meta: { title: 'Settings - MCP Connections' },
|
||||
},
|
||||
{
|
||||
path: 'tools',
|
||||
name: 'SettingsTools',
|
||||
component: () => import('@/views/Tools.vue'),
|
||||
meta: { title: 'Settings - Tools Catalog' },
|
||||
},
|
||||
{
|
||||
path: 'token-usage',
|
||||
@ -209,6 +211,8 @@ const router = createRouter({
|
||||
{ path: 'datasources', redirect: '/settings/datasources' },
|
||||
{ path: 'mcp-servers', redirect: '/settings/mcp-servers' },
|
||||
{ path: 'token-usage', redirect: '/settings/token-usage' },
|
||||
// RFC-090 Phase 1: Tools 顶层降级到 Settings
|
||||
{ path: 'tools', redirect: '/settings/tools' },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@ -165,9 +165,15 @@ const sections = computed(() => [
|
||||
{
|
||||
id: 'mcp-servers',
|
||||
path: '/settings/mcp-servers',
|
||||
label: t('nav.mcpServers'),
|
||||
label: t('nav.mcpConnections'),
|
||||
icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"/><rect x="2" y="14" width="20" height="8" rx="2" ry="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></svg>',
|
||||
},
|
||||
{
|
||||
id: 'tools',
|
||||
path: '/settings/tools',
|
||||
label: t('nav.toolsCatalog'),
|
||||
icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>',
|
||||
},
|
||||
{
|
||||
id: 'token-usage',
|
||||
path: '/settings/token-usage',
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="mc-page-inner tools-page">
|
||||
<div class="mc-page-header">
|
||||
<div>
|
||||
<div class="mc-page-kicker">Execution Surface</div>
|
||||
<div class="mc-page-kicker">{{ t('tools.kicker') }}</div>
|
||||
<h1 class="mc-page-title">{{ t('tools.title') }}</h1>
|
||||
<p class="mc-page-desc">{{ t('tools.desc') }}</p>
|
||||
</div>
|
||||
@ -22,7 +22,6 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ t('tools.columns.tool') }}</th>
|
||||
<th>{{ t('tools.columns.beanName') }}</th>
|
||||
<th>{{ t('tools.columns.type') }}</th>
|
||||
<th>{{ t('tools.columns.status') }}</th>
|
||||
<th>{{ t('tools.columns.actions') }}</th>
|
||||
@ -40,10 +39,10 @@
|
||||
<div>
|
||||
<div class="tool-name">{{ tool.name }}</div>
|
||||
<div class="tool-desc">{{ tool.description }}</div>
|
||||
<code class="tool-bean">{{ tool.beanName }}</code>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><code class="bean-name">{{ tool.beanName }}</code></td>
|
||||
<td>
|
||||
<span class="type-badge" :class="'type-' + tool.toolType">{{ tool.toolType }}</span>
|
||||
</td>
|
||||
@ -71,7 +70,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-if="tools.length === 0">
|
||||
<td colspan="5" class="empty-row">
|
||||
<td colspan="4" class="empty-row">
|
||||
<div class="empty-state">
|
||||
<span class="empty-icon">🔧</span>
|
||||
<p>{{ t('tools.empty') }}</p>
|
||||
@ -221,6 +220,7 @@ async function toggleTool(tool: Tool) {
|
||||
.tool-name { font-weight: 500; color: var(--mc-text-primary); }
|
||||
.tool-desc { font-size: 12px; color: var(--mc-text-tertiary); margin-top: 1px; }
|
||||
.bean-name { background: var(--mc-bg-sunken); padding: 2px 8px; border-radius: 4px; font-size: 12px; color: var(--mc-text-primary); }
|
||||
.tool-bean { display: inline-block; margin-top: 4px; padding: 1px 6px; background: var(--mc-bg-sunken); border-radius: 4px; font-size: 11px; color: var(--mc-text-tertiary); font-family: var(--mc-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
|
||||
.type-badge { padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 500; }
|
||||
.type-builtin { background: var(--mc-primary-bg); color: var(--mc-primary); }
|
||||
.type-mcp { background: var(--mc-primary-bg); color: var(--mc-primary-hover); }
|
||||
|
||||
@ -338,11 +338,6 @@ const navGroups = computed(() => [
|
||||
label: t('nav.skills'),
|
||||
icon: `<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>`,
|
||||
},
|
||||
{
|
||||
path: '/tools',
|
||||
label: t('nav.tools'),
|
||||
icon: `<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>`,
|
||||
},
|
||||
{
|
||||
path: '/plugins',
|
||||
label: t('nav.plugins'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user