diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17e26e1b5e279fe4f9425daf5ce3513812302716..9a31c0c3227dde2c56ee540f26147d51c83536df 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: deepchat-${{ matrix.platform }} + name: polymind-${{ matrix.platform }} path: | dist/* !dist/win-unpacked @@ -77,10 +77,12 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - arch: [x64] + arch: [x64, arm64] include: - arch: x64 platform: linux-x64 + - arch: arm64 + platform: linux-arm64 steps: - uses: actions/checkout@v4 @@ -119,7 +121,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: deepchat-${{ matrix.platform }} + name: polymind-${{ matrix.platform }} path: | dist/* !dist/linux-unpacked @@ -180,7 +182,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: deepchat-${{ matrix.platform }} + name: polymind-${{ matrix.platform }} path: | dist/* !dist/mac/* diff --git a/brand-config.template.json b/brand-config.template.json index 66efc01a11aac6569321e396adc013e9771fa545..2e29ed4c562bb9ac639a02ee9f734b1cdc0d2a54 100644 --- a/brand-config.template.json +++ b/brand-config.template.json @@ -5,13 +5,13 @@ "productName": "PolyMind", "appId": "com.wefonk.polymind", "description": "PolyMind,一个简单易用的AI客户端", - "author": "ThinkInAIXYZ", - "website": "https://deepchatai.cn", - "copyright": "© 2025 ThinkInAIXYZ", - "executableName": "DeepChat" + "author": "openEuler", + "website": "https://polymindai.cn", + "copyright": "© 2025 openEuler", + "executableName": "PolyMind" }, "update": { - "baseUrl": "https://cdn.deepchatai.cn/upgrade/" + "baseUrl": "https://cdn.polymindai.cn/upgrade/" }, "i18n": { "appTitle": { diff --git a/electron-builder.yml b/electron-builder.yml index 9ea438246389d6e33516329b63ca065757f24e19..29bd01c15fa83f5ac0df29e6d4614dd4dd76c1bb 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -30,6 +30,8 @@ extraResources: - from: ./runtime/ to: app.asar.unpacked/runtime filter: ['**/*'] + - from: ./agentcard-settings.json + to: ./ electronLanguages: - zh-CN - zh-TW @@ -80,11 +82,22 @@ linux: target: - AppImage - tar.gz - maintainer: ThinkInAIXYZ + - rpm + maintainer: openEuler category: Utility artifactName: ${name}-${version}-linux-${arch}.${ext} mimeTypes: - x-scheme-handler/polymind + desktop: + entry: | + [Desktop Entry] + Name=PolyMind + Comment=AI Client Application + Categories=Utility; + Icon=${build/icon.png} + Terminal=false + Type=Application + StartupWMClass=PolyMind npmRebuild: true publish: provider: generic diff --git a/src/main/presenter/configPresenter/agentConfHelper.ts b/src/main/presenter/configPresenter/agentConfHelper.ts index 2af21502bb02048bfd0570c0f58de419f0842374..e54f190264d81eb7c8c48692c959c2c17625c193 100644 --- a/src/main/presenter/configPresenter/agentConfHelper.ts +++ b/src/main/presenter/configPresenter/agentConfHelper.ts @@ -31,25 +31,107 @@ export class AgentConfHelper { */ private async loadDefaultAgents(): Promise { try { - // 从项目根目录加载配置文件 - const configPath = path.join(process.cwd(), 'agentcard-settings.json') - console.log('Loading agents from config path:', configPath) + // 尝试从多个路径加载配置文件 + const possiblePaths = [ + // 开发环境:项目根目录 + path.join(process.cwd(), 'agentcard-settings.json'), + // 打包环境:应用资源目录 + path.join(process.resourcesPath, 'agentcard-settings.json'), + // 打包环境:应用根目录 + path.join(process.cwd(), 'agentcard-settings.json'), + // 备用路径:当前目录 + path.join(__dirname, '../../../agentcard-settings.json') + ] + + let configPath = '' + for (const possiblePath of possiblePaths) { + if (fs.existsSync(possiblePath)) { + configPath = possiblePath + console.log('Found agent config at:', configPath) + break + } + } - if (fs.existsSync(configPath)) { + if (configPath) { const configData = fs.readFileSync(configPath, 'utf-8') const config = JSON.parse(configData) const defaultAgents = config.settings?.defaultAgents || [] console.log('Loaded default agents from config:', defaultAgents.length) return defaultAgents } else { - console.warn('Config file not found:', configPath) + console.warn('Agent config file not found in any of the expected locations') + // 如果配置文件不存在,返回硬编码的默认agent + return this.getHardcodedDefaultAgents() } } catch (error) { console.error('Failed to load default agents from config:', error) + // 如果加载失败,返回硬编码的默认agent + return this.getHardcodedDefaultAgents() } + } - // 如果配置文件不存在或加载失败,返回空数组 - return [] + /** + * 获取硬编码的默认智能体数据(作为备用方案) + */ + private getHardcodedDefaultAgents(): Agent[] { + console.log('Using hardcoded default agents') + return [ + { + id: 'default-agent', + name: '默认助手', + description: '通用AI助手', + icon: 'lucide:bot', + category: '', + installed: true, + version: '1.0.0', + provider: { + organization: '', + url: '' + }, + skills: [], + mcpServers: [], + config: {} + }, + { + id: 'code-assistant', + name: '代码助手', + description: '智能代码生成和审查助手', + icon: 'lucide:code', + category: 'development', + installed: false, + version: '1.0.0', + provider: { + organization: 'DeepChat Team', + url: 'https://deepchat.ai' + }, + skills: [ + { + id: 'code-generation', + name: '代码生成', + description: '根据需求生成高质量的代码', + tags: ['development', 'coding'], + examples: ['生成一个React组件', '创建Python函数'], + imputModes: ['text'], + ouputModes: ['code'] + }, + { + id: 'code-review', + name: '代码审查', + description: '分析和改进代码质量', + tags: ['development', 'quality'], + examples: ['检查代码风格', '识别潜在问题'], + imputModes: ['code'], + ouputModes: ['suggestions'] + } + ], + mcpServers: ['Artifacts', 'powerpack', 'buildInFileSystem'], + config: { + languageSupport: ['javascript', 'typescript', 'python', 'java'], + maxTokens: 4096, + temperature: 0.7 + } + } + ] } /** diff --git a/src/main/presenter/upgradePresenter/index.ts b/src/main/presenter/upgradePresenter/index.ts index 3f62987c167ecf39fa2f8198fae7c3d3fd10f8dd..1bf8bbcd5d1274d63307c2113d37fc50469dcd5e 100644 --- a/src/main/presenter/upgradePresenter/index.ts +++ b/src/main/presenter/upgradePresenter/index.ts @@ -43,7 +43,7 @@ const getPlatformInfo = () => { // 获取版本检查的基础URL const getVersionCheckBaseUrl = () => { - return 'https://cdn.deepchatai.cn' + return 'https://cdn.polymindai.cn' } // 获取自动更新状态文件路径 @@ -110,7 +110,7 @@ export class UpgradePresenter implements IUpgradePresenter { // 而是确保使用之前从versionUrl获取的原始信息 console.log('使用已保存的版本信息:', this._versionInfo) // 检测到更新后自动开始下载 - this.startDownloadUpdate() + // this.startDownloadUpdate() }) // 下载进度 diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index 6347422ea5890d44cd76d8ed62ed757e244b4fb4..f74cafada98a8744b1776d2d80b81b6ff5c891cc 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -1,7 +1,6 @@