agent-ecosystem/electron.vite.config.1773089413142.mjs
iliya 210b59884e feat: implement cross-team message deduplication and improve handling
- Added deduplication logic to prevent recent equivalent cross-team messages from being sent multiple times.
- Introduced functions to normalize message content and build deduplication keys.
- Updated CrossTeamService and CrossTeamOutbox to utilize deduplication during message sending.
- Enhanced tests to verify deduplication behavior and ensure correct message handling in various scenarios.
2026-03-09 22:50:13 +02:00

105 lines
3.4 KiB
JavaScript

// electron.vite.config.ts
import { defineConfig, externalizeDepsPlugin } from "electron-vite";
import react from "@vitejs/plugin-react";
import { readFileSync } from "fs";
import { resolve } from "path";
var __electron_vite_injected_dirname = "/Users/belief/dev/projects/claude/claude_team";
var pkg = JSON.parse(readFileSync(resolve(__electron_vite_injected_dirname, "package.json"), "utf-8"));
var prodDeps = Object.keys(pkg.dependencies || {});
var bundledDeps = prodDeps.filter((d) => d !== "node-pty" && d !== "agent-teams-controller");
function nativeModuleStub() {
const STUB_ID = "\0native-stub";
return {
name: "native-module-stub",
resolveId(source) {
if (source.endsWith(".node")) return STUB_ID;
return null;
},
load(id) {
if (id === STUB_ID) return "export default {}";
return null;
}
};
}
var electron_vite_config_default = defineConfig({
main: {
plugins: [
externalizeDepsPlugin({
exclude: bundledDeps
}),
nativeModuleStub()
],
resolve: {
alias: {
"@main": resolve(__electron_vite_injected_dirname, "src/main"),
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
"@preload": resolve(__electron_vite_injected_dirname, "src/preload")
}
},
build: {
outDir: "dist-electron/main",
rollupOptions: {
input: {
index: resolve(__electron_vite_injected_dirname, "src/main/index.ts"),
"team-fs-worker": resolve(__electron_vite_injected_dirname, "src/main/workers/team-fs-worker.ts")
},
output: {
// CJS format so bundled deps can use __dirname/require.
// Use .cjs extension since package.json has "type": "module".
format: "cjs",
entryFileNames: "[name].cjs",
// Set UV_THREADPOOL_SIZE before any module code runs.
// Must be in the banner because ESM→CJS hoists imports above top-level code.
// On Windows, fs.watch({recursive:true}) occupies a UV pool thread per watcher;
// with 3+ watchers + concurrent fs/DNS/spawn, the default 4 threads deadlock.
banner: `if(!process.env.UV_THREADPOOL_SIZE){process.env.UV_THREADPOOL_SIZE='24'}`
}
}
}
},
preload: {
plugins: [externalizeDepsPlugin()],
resolve: {
alias: {
"@preload": resolve(__electron_vite_injected_dirname, "src/preload"),
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
"@main": resolve(__electron_vite_injected_dirname, "src/main")
}
},
build: {
outDir: "dist-electron/preload",
rollupOptions: {
input: {
index: resolve(__electron_vite_injected_dirname, "src/preload/index.ts")
},
output: {
format: "cjs",
entryFileNames: "[name].js"
}
}
}
},
renderer: {
optimizeDeps: {
include: ["@codemirror/language-data"]
},
resolve: {
alias: {
"@renderer": resolve(__electron_vite_injected_dirname, "src/renderer"),
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
"@main": resolve(__electron_vite_injected_dirname, "src/main")
}
},
plugins: [react()],
build: {
rollupOptions: {
input: {
index: resolve(__electron_vite_injected_dirname, "src/renderer/index.html")
}
}
}
}
});
export {
electron_vite_config_default as default
};