Compare commits
	
		
			1 Commits
		
	
	
		
			c7d7951273
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7200252d2e | 
							
								
								
									
										37
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								package.json
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "silky-assistant",
 | 
			
		||||
  "name": "aura-keep",
 | 
			
		||||
  "version": "0.0.3",
 | 
			
		||||
  "description": "Silky Assistant",
 | 
			
		||||
  "description": "Aura Keep Desktop Application",
 | 
			
		||||
  "main": "app-dist/main.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "dev": "vite --config vite.config.ts",
 | 
			
		||||
@@ -10,36 +10,37 @@
 | 
			
		||||
    "build:mac": "electron-builder --mac --universal",
 | 
			
		||||
    "build:win": "electron-builder --win",
 | 
			
		||||
    "build:linux": "electron-builder --linux",
 | 
			
		||||
    "watch:electron": "electron app-dist/main.js --watch",
 | 
			
		||||
    "watch": "electron app-dist/main.js --watch",
 | 
			
		||||
    "start": "electron .",
 | 
			
		||||
    "html": "tsx scripts/clear-directory.ts",
 | 
			
		||||
    "prepub": "pnpm html",
 | 
			
		||||
    "pub": "ev deploy ./build -k silky-assistant -v 0.0.3 -u -o root"
 | 
			
		||||
    "pub": "ev deploy ./build -k aura-keep -v 0.0.3 -u -o root"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [],
 | 
			
		||||
  "author": "abearxiong <xiongxiao@xiongxiao.me>",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "type": "module",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@rollup/plugin-commonjs": "^28.0.3",
 | 
			
		||||
    "@rollup/plugin-node-resolve": "^16.0.1",
 | 
			
		||||
    "@types/node": "^22.15.21",
 | 
			
		||||
    "cross-env": "^7.0.3",
 | 
			
		||||
    "electron": "^36.3.1",
 | 
			
		||||
    "@kevisual/cli": "^0.0.59",
 | 
			
		||||
    "@rollup/plugin-commonjs": "^28.0.6",
 | 
			
		||||
    "@rollup/plugin-node-resolve": "^16.0.3",
 | 
			
		||||
    "@types/node": "^24.7.2",
 | 
			
		||||
    "cross-env": "^10.1.0",
 | 
			
		||||
    "electron": "^38.2.2",
 | 
			
		||||
    "electron-builder": "^26.0.12",
 | 
			
		||||
    "electron-log": "^5.4.0",
 | 
			
		||||
    "typescript": "^5.8.3",
 | 
			
		||||
    "vite": "^6.3.5",
 | 
			
		||||
    "electron-log": "^5.4.3",
 | 
			
		||||
    "typescript": "^5.9.3",
 | 
			
		||||
    "vite": "^7.1.9",
 | 
			
		||||
    "vite-plugin-electron": "^0.29.0",
 | 
			
		||||
    "vite-plugin-static-copy": "^3.0.0"
 | 
			
		||||
    "vite-plugin-static-copy": "^3.1.3"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@kevisual/use-config": "^1.0.17",
 | 
			
		||||
    "@kevisual/use-config": "^1.0.19",
 | 
			
		||||
    "electron-updater": "^6.6.2"
 | 
			
		||||
  },
 | 
			
		||||
  "build": {
 | 
			
		||||
    "appId": "cn.silkeyai.assistant",
 | 
			
		||||
    "productName": "Silky Assistant",
 | 
			
		||||
    "appId": "cn.kevisual.aura-keep",
 | 
			
		||||
    "productName": "Aura Keep",
 | 
			
		||||
    "copyright": "Copyright © 2025 ${author}",
 | 
			
		||||
    "icon": "icons/app-512x512.png",
 | 
			
		||||
    "directories": {
 | 
			
		||||
@@ -76,9 +77,9 @@
 | 
			
		||||
    "publish": [
 | 
			
		||||
      {
 | 
			
		||||
        "provider": "generic",
 | 
			
		||||
        "url": "https://kevisual.silkyai.cn/root/silky-assistant/"
 | 
			
		||||
        "url": "https://kevisual.cn/root/aura-keep/"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "packageManager": "pnpm@10.11.0"
 | 
			
		||||
  "packageManager": "pnpm@10.18.2"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1248
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1248
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -3,14 +3,15 @@ import path from 'node:path';
 | 
			
		||||
import { fileURLToPath } from 'node:url';
 | 
			
		||||
const __filename = fileURLToPath(import.meta.url);
 | 
			
		||||
const __dirname = path.dirname(__filename);
 | 
			
		||||
// 创建透明窗口
 | 
			
		||||
export const createTransWindow = () => {
 | 
			
		||||
  const window = new BrowserWindow({
 | 
			
		||||
    width: 800,
 | 
			
		||||
    height: 600,
 | 
			
		||||
    height: 1000,
 | 
			
		||||
    transparent: true,
 | 
			
		||||
    frame: false,
 | 
			
		||||
  });
 | 
			
		||||
  window.loadURL(process?.env?.ASSISTANT_HOME ?? 'https://kevisual.silkyai.cn/root/talkshow-admin/');
 | 
			
		||||
  window.loadURL(process?.env?.ASSISTANT_HOME ?? 'https://kevisual.cn/root/center/');
 | 
			
		||||
  setTimeout(() => {
 | 
			
		||||
    window.setPosition(0, 0, true);
 | 
			
		||||
  }, 1000);
 | 
			
		||||
@@ -29,6 +30,6 @@ export const createDemoWinodw = (window?: BrowserWindow, opts?: any) => {
 | 
			
		||||
      ...opts?.webPreferences,
 | 
			
		||||
    },
 | 
			
		||||
  });
 | 
			
		||||
  window.loadURL(process?.env?.ASSISTANT_HOME ?? 'https://kevisual.silkyai.cn/root/talkshow-admin/');
 | 
			
		||||
  window.loadURL(process?.env?.ASSISTANT_HOME ?? 'https://kevisual.cn/root/center/');
 | 
			
		||||
  return window;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								src/main/hot-keys/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/main/hot-keys/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
// 注册快捷键 ctrl+q
 | 
			
		||||
import { globalShortcut } from 'electron';
 | 
			
		||||
 | 
			
		||||
export const registerHotKeys = (app: Electron.App) => {
 | 
			
		||||
  const ret = globalShortcut.register('CommandOrControl+Q', () => {
 | 
			
		||||
    console.log('CommandOrControl+Q is pressed');
 | 
			
		||||
    app.quit();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  if (!ret) {
 | 
			
		||||
    console.log('registration failed');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Check whether a shortcut is registered.
 | 
			
		||||
  console.log(globalShortcut.isRegistered('CommandOrControl+Q'));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const unregisterHotKeys = () => {
 | 
			
		||||
  globalShortcut.unregisterAll();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Unregister a shortcut.
 | 
			
		||||
export const unregisterHotKey = (key: string) => {
 | 
			
		||||
  globalShortcut.unregister(key);
 | 
			
		||||
};
 | 
			
		||||
@@ -1,19 +1,11 @@
 | 
			
		||||
import { app, BrowserWindow } from 'electron';
 | 
			
		||||
import * as path from 'path';
 | 
			
		||||
import { fileURLToPath } from 'url';
 | 
			
		||||
import { createSession } from './session/index.ts';
 | 
			
		||||
import { handle } from './handle/index.ts';
 | 
			
		||||
import { loadMenu } from './menu/index.ts';
 | 
			
		||||
import { getLogPath, log } from './app.ts';
 | 
			
		||||
import { checkShowPage } from './window/page/index.ts';
 | 
			
		||||
import { closeProcess, createProcess } from './process/index.ts';
 | 
			
		||||
import { getElectronResourcePath, isMac } from './system/env.ts';
 | 
			
		||||
// import { checkForUpdates } from './updater/index.ts';
 | 
			
		||||
import { createTransWindow, createDemoWinodw } from './browsers/trans.ts';
 | 
			
		||||
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
const __filename = fileURLToPath(import.meta.url);
 | 
			
		||||
const __dirname = path.dirname(__filename);
 | 
			
		||||
import { getElectronResourcePath } from './system/env.ts';
 | 
			
		||||
import { createDemoWinodw } from './browsers/trans.ts';
 | 
			
		||||
import { registerHotKeys } from "./hot-keys/index.ts";
 | 
			
		||||
 | 
			
		||||
let mainWindow: BrowserWindow | null;
 | 
			
		||||
 | 
			
		||||
@@ -23,22 +15,16 @@ async function createWindow() {
 | 
			
		||||
  log.info('createWindow');
 | 
			
		||||
  log.info('path', getLogPath());
 | 
			
		||||
  loadMenu();
 | 
			
		||||
  // await checkShowPage(mainWindow);
 | 
			
		||||
  let transWindow = createDemoWinodw();
 | 
			
		||||
  transWindow.on('closed', () => {
 | 
			
		||||
    transWindow = null;
 | 
			
		||||
  });
 | 
			
		||||
  // mainWindow.on('closed', () => {
 | 
			
		||||
  //   mainWindow = null;
 | 
			
		||||
  // });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
app.on('ready', async () => {
 | 
			
		||||
  // await createProcess();
 | 
			
		||||
  createWindow();
 | 
			
		||||
  // if (!isMac()) {
 | 
			
		||||
  //   checkForUpdates();
 | 
			
		||||
  // }
 | 
			
		||||
  registerHotKeys(app);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.on('window-all-closed', () => {
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ export const createProcess = async () => {
 | 
			
		||||
        env: {
 | 
			
		||||
          ...process.env,
 | 
			
		||||
          // KEVISUAL_URL: 'https://kevisual.xiongxiao.me',
 | 
			
		||||
          KEVISUAL_URL: 'https://kevisual.silkyai.cn',
 | 
			
		||||
          KEVISUAL_URL: 'https://kevisual.cn',
 | 
			
		||||
          NODE_ENV_PARENT: 'fork',
 | 
			
		||||
        },
 | 
			
		||||
      });
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								src/main/utils/current-path.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/main/utils/current-path.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
 | 
			
		||||
import path from 'node:path';
 | 
			
		||||
import { fileURLToPath } from 'node:url';
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
const __filename = fileURLToPath(import.meta.url);
 | 
			
		||||
const __dirname = path.dirname(__filename);
 | 
			
		||||
							
								
								
									
										13
									
								
								src/main/utils/run-cli.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/main/utils/run-cli.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
import {spawn} from 'child_process';
 | 
			
		||||
 | 
			
		||||
export const runCli =async () =>{
 | 
			
		||||
 | 
			
		||||
  const cli = 'ev -h';
 | 
			
		||||
  const cmd = spawn(cli, { shell: true, stdio: 'inherit', cwd: process.cwd() });
 | 
			
		||||
  cmd.on('close', (code) => {
 | 
			
		||||
    console.log(`child process exited with code ${code}`);
 | 
			
		||||
  });
 | 
			
		||||
  cmd.on('error', (err) => {
 | 
			
		||||
    console.error('Failed to start subprocess.', err);
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "module": "CommonJS",
 | 
			
		||||
    "module": "nodenext",
 | 
			
		||||
    "noImplicitAny": false,
 | 
			
		||||
    "sourceMap": false,
 | 
			
		||||
    "outDir": "app-dist",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user