/** * Creates an opaque client identity suitable for cross-host Agent commands. * Business provenance belongs in typed command or pending-intent fields, never * in this value. */ export function createAgentClientId(): string { const crypto = globalThis.crypto; if (typeof crypto?.randomUUID === "function") { return crypto.randomUUID(); } if (typeof crypto?.getRandomValues !== "function") { throw new Error("Secure UUID generation is unavailable"); } const bytes = crypto.getRandomValues(new Uint8Array(16)); bytes[6] = (bytes[6]! & 0x0f) | 0x40; bytes[8] = (bytes[8]! & 0x3f) | 0x80; const hex = Array.from(bytes, (value) => value.toString(16).padStart(2, "0") ).join(""); return [ hex.slice(0, 8), hex.slice(8, 12), hex.slice(12, 16), hex.slice(16, 20), hex.slice(20) ].join("-"); }