From 8d549d17e2c4bd0e62f3a3420a34633f573b7147 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Tue, 6 May 2025 20:45:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=20resources/list=20=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 + renderer/public/iconfont.css | 18 +- renderer/public/iconfont.woff2 | Bin 6112 -> 6512 bytes renderer/src/App.vue | 2 +- .../main-panel/chat/options/setting.vue | 2 +- renderer/src/components/main-panel/index.vue | 19 +- .../components/main-panel/resource/index.vue | 18 +- .../main-panel/resource/resouce-reader.vue | 33 ++-- ...plates.vue => resource-list-templates.vue} | 53 ++++-- .../main-panel/resource/resource-list.vue | 173 ++++++++++++++++++ .../main-panel/resource/resource-logger.vue | 20 +- .../main-panel/resource/resources.ts | 9 +- .../main-panel/tool/tool-executor.vue | 12 +- .../components/main-panel/tool/tool-list.vue | 5 + .../main-panel/tool/tool-logger.vue | 2 +- .../src/components/main-panel/tool/tools.ts | 6 +- renderer/src/components/sidebar/connected.vue | 52 +++--- renderer/src/components/sidebar/mcp-title.vue | 4 +- renderer/src/hook/mcp.ts | 8 +- renderer/src/hook/setting.ts | 11 +- renderer/src/hook/type.ts | 10 +- renderer/src/hook/util.ts | 10 +- renderer/src/i18n/ar.json | 4 +- renderer/src/i18n/de.json | 4 +- renderer/src/i18n/en.json | 4 +- renderer/src/i18n/fr.json | 4 +- renderer/src/i18n/ja.json | 4 +- renderer/src/i18n/ko.json | 4 +- renderer/src/i18n/ru.json | 4 +- renderer/src/i18n/zh-cn.json | 4 +- renderer/src/i18n/zh-tw.json | 4 +- renderer/src/views/about/index.vue | 2 +- .../src/views/connect/connection-args.vue | 4 +- renderer/src/views/debug/welcome.vue | 1 + renderer/src/views/setting/general.vue | 27 ++- service/src/mcp/client.controller.ts | 5 +- service/src/mcp/client.service.ts | 9 +- service/src/setting/setting.service.ts | 2 +- service/tabs.untitle.json | 10 +- 39 files changed, 452 insertions(+), 115 deletions(-) rename renderer/src/components/main-panel/resource/{resource-templates.vue => resource-list-templates.vue} (73%) create mode 100644 renderer/src/components/main-panel/resource/resource-list.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bb9936..f07eb8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## [main] 0.0.7 +- 优化页面布局,使得调试内容更加紧凑 +- 扩大默认的上下文长度 +- 增加「通用选项」,用于设置mcp服务器的最大的等待时间 ## [main] 0.0.6 - 修复部分因为服务器名称特殊字符而导致的保存实效的错误 diff --git a/renderer/public/iconfont.css b/renderer/public/iconfont.css index 5a5273e..5c04cb3 100644 --- a/renderer/public/iconfont.css +++ b/renderer/public/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4870215 */ - src: url('iconfont.woff2?t=1745774700883') format('woff2'), - url('iconfont.woff?t=1745774700883') format('woff'), - url('iconfont.ttf?t=1745774700883') format('truetype'); + src: url('iconfont.woff2?t=1746529081655') format('woff2'), + url('iconfont.woff?t=1746529081655') format('woff'), + url('iconfont.ttf?t=1746529081655') format('truetype'); } .iconfont { @@ -13,6 +13,18 @@ -moz-osx-font-smoothing: grayscale; } +.icon-timeout:before { + content: "\edf5"; +} + +.icon-dui:before { + content: "\e627"; +} + +.icon-cuo:before { + content: "\ed1a"; +} + .icon-video:before { content: "\e865"; } diff --git a/renderer/public/iconfont.woff2 b/renderer/public/iconfont.woff2 index 4afc4a40679b53da9bccca27cdeb664cd46b8571..1ba99482f0956b7d67f5725942b8a7c4a0e19e4d 100644 GIT binary patch literal 6512 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 W`XE)y?oi?3MEz5S66SmY0001-K7>2~ literal 6112 zcmV<67a!<%Pew8T0RR9102kl@3jhEB04u}*02hz|0RR9100000000000000000000 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 m&S_}mt> { \ No newline at end of file diff --git a/renderer/src/components/main-panel/resource/resource-logger.vue b/renderer/src/components/main-panel/resource/resource-logger.vue index 61acc72..acdcadf 100644 --- a/renderer/src/components/main-panel/resource/resource-logger.vue +++ b/renderer/src/components/main-panel/resource/resource-logger.vue @@ -20,7 +20,20 @@ > @@ -21,6 +34,8 @@ import { defineComponent, ref } from 'vue'; import { languageSetting } from './language'; import { useI18n } from 'vue-i18n'; +import { mcpSetting } from '@/hook/mcp'; +import { debounce } from 'lodash'; import { saveSetting } from '@/hook/setting'; defineComponent({ name: 'appearance' }); @@ -29,15 +44,25 @@ const { t, locale } = useI18n(); const currentLanguage = ref('简体中文'); + + function onlanguagechange(code: string) { + console.log('enter lang change'); + const option = languageSetting.options.find(item => item.value === code); if (option) { currentLanguage.value = option.text; } // languageDialogShow.value = true; - saveSetting(); + saveSetting(); } + +const safeSaveSetting = debounce(() => { + saveSetting(); +}, 10); + + \ No newline at end of file diff --git a/service/src/mcp/client.controller.ts b/service/src/mcp/client.controller.ts index 9ed3ef1..0238fb6 100644 --- a/service/src/mcp/client.controller.ts +++ b/service/src/mcp/client.controller.ts @@ -97,6 +97,8 @@ export class ClientController { } const resource = await client.readResource(option.resourceUri); + console.log(resource); + return { code: 200, msg: resource @@ -130,7 +132,8 @@ export class ClientController { const toolResult = await client.callTool({ name: option.toolName, - arguments: option.toolArgs + arguments: option.toolArgs, + callToolOption: option.callToolOption }); // console.log(JSON.stringify(toolResult, null, 2)); diff --git a/service/src/mcp/client.service.ts b/service/src/mcp/client.service.ts index 4b7c2fb..e96aaff 100644 --- a/service/src/mcp/client.service.ts +++ b/service/src/mcp/client.service.ts @@ -41,7 +41,8 @@ export class McpClient { this.transport = new StdioClientTransport({ command: this.options.command || '', args: this.options.args || [], - cwd: this.options.cwd || process.cwd() + cwd: this.options.cwd || process.cwd(), + stderr: 'pipe' }); break; @@ -117,8 +118,10 @@ export class McpClient { } // 调用工具 - public async callTool(options: { name: string; arguments: Record }) { - return await this.client.callTool(options); + public async callTool(options: { name: string; arguments: Record, callToolOption?: any }) { + + const { callToolOption, ...methodArgs } = options; + return await this.client.callTool(methodArgs, undefined, callToolOption); } } diff --git a/service/src/setting/setting.service.ts b/service/src/setting/setting.service.ts index 4ac7a15..1cc0f16 100644 --- a/service/src/setting/setting.service.ts +++ b/service/src/setting/setting.service.ts @@ -25,7 +25,7 @@ function getDefaultLanguage() { const DEFAULT_CONFIG: IConfig = { MODEL_INDEX: 0, LLM_INFO: llms, - LANG: getDefaultLanguage() + LANG: getDefaultLanguage(), MCP_TIMEOUT_SEC: 60 }; diff --git a/service/tabs.untitle.json b/service/tabs.untitle.json index 5df3c19..3f3172a 100644 --- a/service/tabs.untitle.json +++ b/service/tabs.untitle.json @@ -1,4 +1,12 @@ { "currentIndex": 0, - "tabs": [] + "tabs": [ + { + "name": "Blank test 1", + "icon": "icon-blank", + "type": "blank", + "componentIndex": -1, + "storage": {} + } + ] } \ No newline at end of file