diff --git a/.vscode/settings.json b/.vscode/settings.json index 8e7bbd6..eb66384 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,6 +11,6 @@ // Turn off tsc task auto detection since we have the necessary tasks as npm scripts "typescript.tsc.autoDetect": "off", - "i18n-haru.root": "app/src/i18n", + "i18n-haru.root": "renderer/src/i18n", "i18n-haru.main": "zh" } diff --git a/.vscodeignore b/.vscodeignore index 8421dd7..e4f976e 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -12,7 +12,7 @@ vsc-extension-quickstart.md **/*.map **/*.ts **/.vscode-test.* -app/** -backend/** +renderer/** +service/** test/** servers/** \ No newline at end of file diff --git a/renderer/package.json b/renderer/package.json index e9702dc..9f6863e 100644 --- a/renderer/package.json +++ b/renderer/package.json @@ -1,5 +1,5 @@ { - "name": "app", + "name": "renderer", "version": "0.1.0", "private": true, "scripts": { diff --git a/renderer/public/iconfont.css b/renderer/public/iconfont.css index a143ee9..aa2a20d 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=1743002215431') format('woff2'), - url('iconfont.woff?t=1743002215431') format('woff'), - url('iconfont.ttf?t=1743002215431') format('truetype'); + src: url('iconfont.woff2?t=1743933179660') format('woff2'), + url('iconfont.woff?t=1743933179660') format('woff'), + url('iconfont.ttf?t=1743933179660') format('truetype'); } .iconfont { @@ -13,6 +13,22 @@ -moz-osx-font-smoothing: grayscale; } +.icon-robot1:before { + content: "\e644"; +} + +.icon-length:before { + content: "\e60d"; +} + +.icon-web:before { + content: "\e935"; +} + +.icon-temperature:before { + content: "\e62e"; +} + .icon-close:before { content: "\e615"; } diff --git a/renderer/public/iconfont.woff2 b/renderer/public/iconfont.woff2 index b4fdf3f..95affa0 100644 Binary files a/renderer/public/iconfont.woff2 and b/renderer/public/iconfont.woff2 differ diff --git a/renderer/public/mcp.css b/renderer/public/mcp.css index a5ff19c..c0e5cce 100644 --- a/renderer/public/mcp.css +++ b/renderer/public/mcp.css @@ -14,9 +14,9 @@ --code-font-family: "Cascadia code"; /* css 动画属性 */ - --animation-7s: .7s cubic-bezier(0.23,1,0.32,1); - --animation-5s: .5s cubic-bezier(0.23,1,0.32,1); - --animation-3s: .35s cubic-bezier(0.23,1,0.32,1); + --animation-7s: .7s cubic-bezier(0.23, 1, 0.32, 1); + --animation-5s: .5s cubic-bezier(0.23, 1, 0.32, 1); + --animation-3s: .35s cubic-bezier(0.23, 1, 0.32, 1); --gray-box-shadow-0: 0 0 8px 3px rgba(182, 181, 182, 0.9); --gray-box-shadow-1: 0 0 5px 1px rgba(16, 16, 16, 0.5); } @@ -26,7 +26,8 @@ src: url("./CascadiaCode.woff2"); } -html, body { +html, +body { background-color: var(--background); color: var(--foreground); overflow: hidden; @@ -42,6 +43,7 @@ body::-webkit-scrollbar { height: 1.5px; width: 95%; } + /* ::-webkit-scrollbar { width: 12px; @@ -100,25 +102,17 @@ body::-webkit-scrollbar { font-size: 16px !important; } +.el-textarea__inner { + border-radius: .9em !important; + padding: 10px !important; + box-shadow: 0 0 0 1px var(--main-color) !important; +} + a { color: var(--main-color); } -.digital-ide-icon { - background-image: url(./icon.svg); - background-size: 100%; - height: 50px; - width: 50px; -} - -.digital-ide-icon.big { - background-image: url(./icon.svg); - background-size: 100%; - height: 150px; - width: 150px; -} - .el-radio-button__original-radio:disabled:checked+.el-radio-button__inner { opacity: 0.6; } @@ -126,4 +120,26 @@ a { .el-select__wrapper.is-disabled { opacity: 0.6; box-shadow: unset !important; +} + +.el-textarea__inner::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +.el-textarea__inner::-webkit-scrollbar-track { + background: transparent; + /* 浅紫色背景 */ + border-radius: 4px; +} + +.el-textarea__inner::-webkit-scrollbar-thumb { + background: #cb81da; + /* 使用您的主题色 */ + border-radius: 4px; +} + +.el-textarea__inner::-webkit-scrollbar-thumb:hover { + background: #a259b5; + /* 深紫色悬停状态 */ } \ No newline at end of file diff --git a/renderer/src/components/main-panel/chat/chat.ts b/renderer/src/components/main-panel/chat/chat.ts new file mode 100644 index 0000000..cb78365 --- /dev/null +++ b/renderer/src/components/main-panel/chat/chat.ts @@ -0,0 +1,18 @@ +export interface ChatMessage { + role: 'user' | 'assistant' | 'system'; + content: string; +} + +export interface ChatSetting { + modelIndex: number + systemPrompt: string + enableTools: boolean + temperature: number + enableWebSearch: boolean + contextLength: number +} + +export interface ChatStorage { + messages: ChatMessage[] + settings: ChatSetting +} \ No newline at end of file diff --git a/renderer/src/components/main-panel/chat/index.vue b/renderer/src/components/main-panel/chat/index.vue index c82100b..67a0a07 100644 --- a/renderer/src/components/main-panel/chat/index.vue +++ b/renderer/src/components/main-panel/chat/index.vue @@ -1,14 +1,16 @@ + + \ No newline at end of file diff --git a/renderer/src/components/main-panel/index.vue b/renderer/src/components/main-panel/index.vue index a43fcb6..0f2e819 100644 --- a/renderer/src/components/main-panel/index.vue +++ b/renderer/src/components/main-panel/index.vue @@ -72,7 +72,7 @@ function pageAddNewTab() { background-color: var(--sidebar); border-radius: 1.2em; width: 100%; - height: 95%; + height: 90%; } .scroll-tabs-container { diff --git a/renderer/src/hook/css.ts b/renderer/src/hook/css.ts index 1c78c07..51b06a3 100644 --- a/renderer/src/hook/css.ts +++ b/renderer/src/hook/css.ts @@ -23,6 +23,8 @@ export function setDefaultCss() { document.body.style.setProperty('--el-fill-color-dark', 'var(--main-light-color)'); document.body.style.setProperty('--el-fill-color-darker', 'var(--main-light-color)'); document.body.style.setProperty('--el-color-primary-light-5', 'var(--button-disabled)'); + document.body.style.setProperty('--el-bg-color', 'var(--background)'); + document.body.style.setProperty('--el-text-color-primary', 'var(--foreground)'); // document.body.style.setProperty('--el-color-white', 'var(--background)'); diff --git a/renderer/src/hook/util.ts b/renderer/src/hook/util.ts new file mode 100644 index 0000000..5a73d25 --- /dev/null +++ b/renderer/src/hook/util.ts @@ -0,0 +1,22 @@ +export function getCurrentTime() { + // 创建一个Date对象 + const date = new Date(); + // 获取年份 + const year: string | number = date.getFullYear(); + // 获取月份(0-11) + let month: string | number = date.getMonth() + 1; + // 获取日期(1-31) + let day: string | number = date.getDate(); + // 获取小时(0-23) + let hour: string | number = date.getHours(); + // 获取分钟(0-59) + let minute: string | number = date.getMinutes(); + // 如果月份、日期、小时、分钟或秒钟小于10,则在前面补0 + month = month < 10 ? "0" + month : month; + day = day < 10 ? "0" + day : day; + hour = hour < 10 ? "0" + hour : hour; + minute = minute < 10 ? "0" + minute : minute; + // 拼接成字符串 + const timeStr = year + "年" + month + "月" + day + "日" + " " + hour + ":" + minute; + return timeStr; +} \ No newline at end of file diff --git a/renderer/src/i18n/ar.json b/renderer/src/i18n/ar.json index 710f5ef..ef31005 100644 --- a/renderer/src/i18n/ar.json +++ b/renderer/src/i18n/ar.json @@ -116,5 +116,6 @@ "refresh": "تحديث", "read-prompt": "قراءة المطالبة", "execute-tool": "تشغيل", - "save": "حفظ" + "save": "حفظ", + "send": "إرسال" } \ No newline at end of file diff --git a/renderer/src/i18n/de.json b/renderer/src/i18n/de.json index fcc9fd0..d963dec 100644 --- a/renderer/src/i18n/de.json +++ b/renderer/src/i18n/de.json @@ -116,5 +116,6 @@ "refresh": "Aktualisieren", "read-prompt": "Prompt lesen", "execute-tool": "Ausführen", - "save": "Speichern" + "save": "Speichern", + "send": "Senden" } \ No newline at end of file diff --git a/renderer/src/i18n/en.json b/renderer/src/i18n/en.json index b70a573..ea80795 100644 --- a/renderer/src/i18n/en.json +++ b/renderer/src/i18n/en.json @@ -116,5 +116,6 @@ "refresh": "Refresh", "read-prompt": "Read prompt", "execute-tool": "Run", - "save": "Save" + "save": "Save", + "send": "Send" } \ No newline at end of file diff --git a/renderer/src/i18n/fr.json b/renderer/src/i18n/fr.json index bc743af..34c58f8 100644 --- a/renderer/src/i18n/fr.json +++ b/renderer/src/i18n/fr.json @@ -116,5 +116,6 @@ "refresh": "Rafraîchir", "read-prompt": "Lire l'invite", "execute-tool": "Exécuter", - "save": "Enregistrer" + "save": "Enregistrer", + "send": "Envoyer" } \ No newline at end of file diff --git a/renderer/src/i18n/ja.json b/renderer/src/i18n/ja.json index 02bb186..20fcb14 100644 --- a/renderer/src/i18n/ja.json +++ b/renderer/src/i18n/ja.json @@ -116,5 +116,6 @@ "refresh": "更新", "read-prompt": "プロンプトを読み取る", "execute-tool": "実行", - "save": "保存" + "save": "保存", + "send": "送信" } \ No newline at end of file diff --git a/renderer/src/i18n/ko.json b/renderer/src/i18n/ko.json index 1331441..c253754 100644 --- a/renderer/src/i18n/ko.json +++ b/renderer/src/i18n/ko.json @@ -116,5 +116,6 @@ "refresh": "새로 고침", "read-prompt": "프롬프트 읽기", "execute-tool": "실행", - "save": "저장" + "save": "저장", + "send": "보내기" } \ No newline at end of file diff --git a/renderer/src/i18n/ru.json b/renderer/src/i18n/ru.json index 46b4da1..a29f813 100644 --- a/renderer/src/i18n/ru.json +++ b/renderer/src/i18n/ru.json @@ -116,5 +116,6 @@ "refresh": "Обновить", "read-prompt": "Чтение подсказки", "execute-tool": "Запуск", - "save": "Сохранить" + "save": "Сохранить", + "send": "Отправить" } \ No newline at end of file diff --git a/renderer/src/i18n/zh-cn.json b/renderer/src/i18n/zh-cn.json index 77088d9..56cf4e1 100644 --- a/renderer/src/i18n/zh-cn.json +++ b/renderer/src/i18n/zh-cn.json @@ -116,5 +116,6 @@ "refresh": "刷新", "read-prompt": "读取 prompt", "execute-tool": "运行", - "save": "保存" + "save": "保存", + "send": "发送" } \ No newline at end of file diff --git a/renderer/src/i18n/zh-tw.json b/renderer/src/i18n/zh-tw.json index 56d67cd..6028803 100644 --- a/renderer/src/i18n/zh-tw.json +++ b/renderer/src/i18n/zh-tw.json @@ -116,5 +116,6 @@ "refresh": "重新整理", "read-prompt": "讀取提示", "execute-tool": "執行", - "save": "儲存" + "save": "儲存", + "send": "傳送" } \ No newline at end of file diff --git a/renderer/src/views/debug/index.vue b/renderer/src/views/debug/index.vue index f000824..5df7d76 100644 --- a/renderer/src/views/debug/index.vue +++ b/renderer/src/views/debug/index.vue @@ -3,7 +3,7 @@ -
+