Files
AgentCompany/src/main/index.ts
T
2026-03-18 01:15:58 -04:00

37 lines
1.2 KiB
TypeScript

import { dirname, join, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { app } from "electron";
import { configureMainProcess } from "./main-process-setup";
import { createMainRuntime } from "./main-runtime";
const __dirname = dirname(fileURLToPath(import.meta.url));
configureMainProcess("AgentCompany");
const profileDir = process.env.AGENTCOMPANY_PROFILE_DIR ?? join(app.getPath("userData"), "profile");
const isDev = Boolean(process.env.ELECTRON_RENDERER_URL);
const devServerOrigin = process.env.ELECTRON_RENDERER_URL ? new URL(process.env.ELECTRON_RENDERER_URL).origin : null;
const hasSingleInstanceLock =
process.env.AGENTCOMPANY_DISABLE_SINGLE_INSTANCE === "true"
? true
: app.requestSingleInstanceLock();
const runtime = createMainRuntime({
hasSingleInstanceLock,
isDev,
devServerOrigin,
profileDir,
windowStatePath: join(profileDir, "window-state.json"),
preloadPath: join(__dirname, "../preload/index.js"),
rendererDist: join(__dirname, "../renderer"),
iconPath: resolve(__dirname, "../../assets/icon.png"),
workerPath: join(__dirname, "worker.js"),
devServerUrl: process.env.ELECTRON_RENDERER_URL,
});
if (hasSingleInstanceLock) {
void runtime.bootstrap();
} else {
app.quit();
}