Files
openclaw/src/daemon/launchd-label.ts
T
Harjoth Khara 895b691c55 fix(daemon): refuse duplicate launchd gateway managers (#97285)
* fix(daemon): block duplicate launchd owners

Co-authored-by: Harjoth Khara <harjoth.khara@gmail.com>

* fix(ci): satisfy launchd docs and lint gates

* fix(ci): remove unused launchd exports

* docs: refresh gateway map

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-29 13:31:22 -04:00

19 lines
734 B
TypeScript

/** Resolves the one effective launchd label shared by lifecycle and diagnostics. */
import { sanitizeForLog } from "../../packages/terminal-core/src/ansi.js";
import { resolveGatewayLaunchAgentLabel } from "./constants.js";
export function assertValidLaunchAgentLabel(label: string): string {
const trimmed = label.trim();
if (!/^[A-Za-z0-9._-]+$/.test(trimmed)) {
throw new Error(`Invalid launchd label: ${sanitizeForLog(trimmed)}`);
}
return trimmed;
}
export function resolveLaunchAgentLabel(env?: Record<string, string | undefined>): string {
const override = env?.OPENCLAW_LAUNCHD_LABEL?.trim();
return assertValidLaunchAgentLabel(
override || resolveGatewayLaunchAgentLabel(env?.OPENCLAW_PROFILE),
);
}