diff --git a/CHANGELOG.md b/CHANGELOG.md index f859b9b..bb22fca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [main] 0.1.6 - 针对 0.1.5 无法在 Windows 启动的紧急修复。 - 修复环境变量中添加 token 失效的问题。 +- 优化工具展示的页面布局。 ## [main] 0.1.5 - 修复 gemini 获取模型列表时存在 models 前缀的问题 diff --git a/package-lock.json b/package-lock.json index a59a012..e6f218c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2698,6 +2698,16 @@ "@types/node": "*" } }, + "node_modules/@types/xml2js": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", + "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vitejs/plugin-vue": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", @@ -9401,6 +9411,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, "node_modules/schema-utils": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", @@ -11392,6 +11408,28 @@ } } }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -11579,7 +11617,8 @@ "uuid": "^11.1.0", "vue": "^3.5.13", "vue-i18n": "^11.1.0", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "xml2js": "^0.6.2" }, "devDependencies": { "@babel/core": "^7.27.1", @@ -11593,6 +11632,7 @@ "@types/markdown-it": "^14.1.2", "@types/node": "^22.14.0", "@types/prismjs": "^1.26.5", + "@types/xml2js": "^0.4.14", "@vitejs/plugin-vue": "^5.2.3", "@vue/babel-plugin-jsx": "^1.4.0", "@vue/devtools-core": "^7.7.6", diff --git a/renderer/package.json b/renderer/package.json index c0c3ad5..40f3604 100644 --- a/renderer/package.json +++ b/renderer/package.json @@ -33,7 +33,8 @@ "uuid": "^11.1.0", "vue": "^3.5.13", "vue-i18n": "^11.1.0", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "xml2js": "^0.6.2" }, "devDependencies": { "@babel/core": "^7.27.1", @@ -47,6 +48,7 @@ "@types/markdown-it": "^14.1.2", "@types/node": "^22.14.0", "@types/prismjs": "^1.26.5", + "@types/xml2js": "^0.4.14", "@vitejs/plugin-vue": "^5.2.3", "@vue/babel-plugin-jsx": "^1.4.0", "@vue/devtools-core": "^7.7.6", diff --git a/renderer/public/mcp.css b/renderer/public/mcp.css index 7646049..6aecf24 100644 --- a/renderer/public/mcp.css +++ b/renderer/public/mcp.css @@ -227,4 +227,5 @@ a { .ͼo, .ͼo .cm-gutters { background-color: transparent !important; -} \ No newline at end of file +} + diff --git a/renderer/src/components/main-panel/chat/chat-box/chat.ts b/renderer/src/components/main-panel/chat/chat-box/chat.ts index 662e659..0b2d003 100644 --- a/renderer/src/components/main-panel/chat/chat-box/chat.ts +++ b/renderer/src/components/main-panel/chat/chat-box/chat.ts @@ -1,4 +1,4 @@ -import type { ToolCallContent, ToolItem } from "@/hook/type"; +import type { InputSchema, ToolCallContent, ToolItem } from "@/hook/type"; import { type Ref, ref } from "vue"; import type { OpenAI } from 'openai'; @@ -16,6 +16,7 @@ export enum MessageState { Success = 'success', ParseJsonError = 'parse json error', NoToolFunction = 'no tool function', + InvalidXml = 'invalid xml', } export interface IExtraInfo { @@ -23,6 +24,7 @@ export interface IExtraInfo { state: MessageState, serverName: string, usage?: ChatCompletionChunk['usage']; + enableXmlWrapper: boolean; [key: string]: any; } @@ -52,7 +54,7 @@ export interface EnableToolItem { name: string; description: string; enabled: boolean; - inputSchema: any; + inputSchema: InputSchema; } export interface ChatSetting { @@ -108,7 +110,7 @@ export interface IToolRenderMessage { export type IRenderMessage = ICommonRenderMessage | IToolRenderMessage; -export function getToolSchema(enableTools: EnableToolItem[]) { +export function getToolSchema(enableTools: EnableToolItem[]): any[] { const toolsSchema = []; for (let i = 0; i < enableTools.length; i++) { const enableTool = enableTools[i]; diff --git a/renderer/src/components/main-panel/chat/chat-box/options/context-length.vue b/renderer/src/components/main-panel/chat/chat-box/options/context-length.vue index d65f87c..deecf9f 100644 --- a/renderer/src/components/main-panel/chat/chat-box/options/context-length.vue +++ b/renderer/src/components/main-panel/chat/chat-box/options/context-length.vue @@ -1,5 +1,5 @@