codex-plugin-cc/plugins/codex/scripts/lib/broker-endpoint.mjs
Dominik Kundel c69527eb18
Initial commit
Co-authored-by: Codex <noreply@openai.com>
2026-03-30 09:42:33 -07:00

42 lines
1.2 KiB
JavaScript

import path from "node:path";
import process from "node:process";
function sanitizePipeName(value) {
return String(value ?? "")
.replace(/[^A-Za-z0-9._-]/g, "-")
.replace(/^-+|-+$/g, "");
}
export function createBrokerEndpoint(sessionDir, platform = process.platform) {
if (platform === "win32") {
const pipeName = sanitizePipeName(`${path.win32.basename(sessionDir)}-codex-app-server`);
return `pipe:\\\\.\\pipe\\${pipeName}`;
}
return `unix:${path.join(sessionDir, "broker.sock")}`;
}
export function parseBrokerEndpoint(endpoint) {
if (typeof endpoint !== "string" || endpoint.length === 0) {
throw new Error("Missing broker endpoint.");
}
if (endpoint.startsWith("pipe:")) {
const pipePath = endpoint.slice("pipe:".length);
if (!pipePath) {
throw new Error("Broker pipe endpoint is missing its path.");
}
return { kind: "pipe", path: pipePath };
}
if (endpoint.startsWith("unix:")) {
const socketPath = endpoint.slice("unix:".length);
if (!socketPath) {
throw new Error("Broker Unix socket endpoint is missing its path.");
}
return { kind: "unix", path: socketPath };
}
throw new Error(`Unsupported broker endpoint: ${endpoint}`);
}