feat: 实现 OpenCode 页面生命周期管理 XCOpenCodeWeb.exe

- 新增 electron/services/xcOpenCodeWebService.ts 服务管理模块
- 标签页打开时启动 XCOpenCodeWeb.exe,关闭时停止
- 使用 iframe 在 OpenCode 页面显示 Web 服务 (端口 3002)
- 添加 bin 目录打包配置
- 添加 TypeScript 类型定义
This commit is contained in:
2026-03-13 20:55:34 +08:00
parent 53c1045406
commit 72d79ae214
7 changed files with 236 additions and 6 deletions

View File

@@ -6,6 +6,7 @@ import log from 'electron-log';
import { generatePdf } from './services/pdfGenerator';
import { selectHtmlFile } from './services/htmlImport';
import { opencodeService } from './services/opencodeService';
import { xcOpenCodeWebService } from './services/xcOpenCodeWebService';
import { electronState } from './state';
log.initialize();
@@ -361,6 +362,18 @@ ipcMain.handle('opencode-stop-server', async () => {
return await opencodeService.stop();
});
ipcMain.handle('xc-opencode-web-get-status', () => {
return xcOpenCodeWebService.getStatus();
});
ipcMain.handle('xc-opencode-web-start', async () => {
return await xcOpenCodeWebService.start();
});
ipcMain.handle('xc-opencode-web-stop', async () => {
return await xcOpenCodeWebService.stop();
});
async function startServer() {
if (electronState.isDevelopment()) {
log.info('In dev mode, assuming external servers are running.');