diff --git a/apps/desktop/.gitignore b/apps/desktop/.gitignore index 4cec9104..6e6de1d0 100644 --- a/apps/desktop/.gitignore +++ b/apps/desktop/.gitignore @@ -1,26 +1,8 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules +# Build outputs (keep build/ for icons and entitlements) +!build/ dist dist-electron dist-ssr +out release *.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/apps/desktop/build/icon.icns b/apps/desktop/build/icon.icns new file mode 100644 index 00000000..a8caad7a Binary files /dev/null and b/apps/desktop/build/icon.icns differ diff --git a/apps/desktop/build/icon.ico b/apps/desktop/build/icon.ico new file mode 100644 index 00000000..ff3437ef Binary files /dev/null and b/apps/desktop/build/icon.ico differ diff --git a/apps/desktop/build/icon.png b/apps/desktop/build/icon.png new file mode 100644 index 00000000..ba5cedcb Binary files /dev/null and b/apps/desktop/build/icon.png differ diff --git a/apps/desktop/electron-builder.json5 b/apps/desktop/electron-builder.json5 index a2c6ba61..b30a5ab7 100644 --- a/apps/desktop/electron-builder.json5 +++ b/apps/desktop/electron-builder.json5 @@ -1,23 +1,40 @@ // @see - https://www.electron.build/configuration/configuration { "$schema": "https://raw.githubusercontent.com/electron-userland/electron-builder/master/packages/app-builder-lib/scheme.json", - "appId": "YourAppID", + "appId": "com.multica.app", "asar": true, - "productName": "YourAppName", - "electronVersion": "30.5.1", + "productName": "Multica", "directories": { + "buildResources": "build", "output": "release/${version}" }, "files": [ - "out" + "out", + "!**/.vscode/*", + "!src/*", + "!electron.vite.config.{js,ts,mjs,cjs}", + "!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml}", + "!{.env,.env.*,.npmrc}", + "!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}" ], - "mac": { + "mac": { + "hardenedRuntime": false, "target": [ "dmg" ], - "artifactName": "${productName}-Mac-${version}-Installer.${ext}" + "artifactName": "${productName}-${version}-${arch}-mac.${ext}", + "extendInfo": { + "NSCameraUsageDescription": "Application requests access to the device's camera.", + "NSMicrophoneUsageDescription": "Application requests access to the device's microphone.", + "NSDocumentsFolderUsageDescription": "Application requests access to the user's Documents folder.", + "NSDownloadsFolderUsageDescription": "Application requests access to the user's Downloads folder." + } + }, + "dmg": { + "artifactName": "${productName}-${version}-${arch}.${ext}" }, "win": { + "executableName": "multica", "target": [ { "target": "nsis", @@ -32,12 +49,19 @@ "oneClick": false, "perMachine": false, "allowToChangeInstallationDirectory": true, - "deleteAppDataOnUninstall": false + "deleteAppDataOnUninstall": false, + "shortcutName": "${productName}", + "uninstallDisplayName": "${productName}", + "createDesktopShortcut": "always" }, "linux": { "target": [ - "AppImage" + "AppImage", + "deb" ], + "maintainer": "multica.ai", + "category": "Utility", "artifactName": "${productName}-Linux-${version}.${ext}" - } + }, + "npmRebuild": false } diff --git a/apps/desktop/package.json b/apps/desktop/package.json index a29419b2..f9411f11 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -2,6 +2,9 @@ "name": "@multica/desktop", "private": true, "version": "0.0.0", + "description": "Multica Desktop - AI Agent Hub", + "author": "Multica AI ", + "homepage": "https://github.com/multica-ai/super-multica", "type": "module", "scripts": { "dev": "electron-vite dev", diff --git a/package.json b/package.json index 3cfa2b80..1da79bb9 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "dev:web": "pnpm --filter @multica/web dev", "dev:all": "concurrently \"pnpm dev:gateway\" \"pnpm dev:web\"", "build": "turbo build", + "build:desktop": "pnpm --filter @multica/desktop build", "build:sdk": "pnpm --filter @multica/sdk build", "build:cli": "node scripts/build-cli.js", "start": "node dist/index.js",