Initial commit: restructure to flat layout with ui/ and web/ at root

This commit is contained in:
2026-03-12 21:33:50 +08:00
commit decba25a08
1708 changed files with 199890 additions and 0 deletions

68
web/electron/main.js Normal file
View File

@@ -0,0 +1,68 @@
const { app, BrowserWindow } = require('electron');
const path = require('path');
const { spawn } = require('child_process');
let mainWindow = null;
let serverProcess = null;
function startServer() {
console.log('Starting OpenChamber server...');
serverProcess = spawn('bun', ['run', 'start:web'], {
cwd: path.join(__dirname, '..'),
stdio: 'inherit',
shell: true,
detached: false
});
serverProcess.on('error', (err) => {
console.error('Server error:', err);
});
serverProcess.on('exit', (code) => {
console.log('Server exited with code:', code);
});
}
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
show: false,
webPreferences: {
nodeIntegration: false,
contextIsolation: true
}
});
mainWindow.loadURL('http://localhost:3000');
mainWindow.once('ready-to-show', () => {
mainWindow.show();
});
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.whenReady().then(() => {
startServer();
setTimeout(() => {
createWindow();
}, 3000);
});
app.on('window-all-closed', () => {
if (serverProcess) {
serverProcess.kill();
}
app.quit();
});
app.on('before-quit', () => {
if (serverProcess) {
serverProcess.kill();
}
});

4885
web/electron/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

39
web/electron/package.json Normal file
View File

@@ -0,0 +1,39 @@
{
"name": "openchamber",
"version": "1.8.5",
"description": "OpenChamber - AI Agent Web UI",
"author": "OpenChamber",
"main": "main.js",
"private": true,
"scripts": {
"electron:dev": "electron .",
"electron:build": "electron-builder --win --x64"
},
"build": {
"appId": "com.openchamber.app",
"productName": "OpenChamber",
"directories": {
"output": "release"
},
"files": [
"main.js",
"../dist/**/*",
"../server/**/*",
"../bin/**/*",
"../public/**/*",
"package.json"
],
"win": {
"target": "portable"
},
"portable": {
"artifactName": "OpenChamber.exe"
},
"asar": true,
"npmRebuild": true
},
"devDependencies": {
"electron": "^41.0.0",
"electron-builder": "^26.8.1"
}
}