@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
49 lines (47 loc) • 1.48 kB
JavaScript
//#region src/gateway/gateway-config-prompts.shared.ts
const TAILSCALE_EXPOSURE_OPTIONS = [
{
value: "off",
label: "Off",
hint: "No Tailscale exposure"
},
{
value: "serve",
label: "Serve",
hint: "Private HTTPS for your tailnet (devices on Tailscale)"
},
{
value: "funnel",
label: "Funnel",
hint: "Public HTTPS via Tailscale Funnel (internet)"
}
];
const TAILSCALE_MISSING_BIN_NOTE_LINES = [
"Tailscale binary not found in PATH or /Applications.",
"Ensure Tailscale is installed from:",
" https://tailscale.com/download/mac",
"",
"You can continue setup, but serve/funnel will fail at runtime."
];
const TAILSCALE_DOCS_LINES = [
"Docs:",
"https://docs.openclaw.ai/gateway/tailscale",
"https://docs.openclaw.ai/web"
];
//#endregion
//#region src/shared/net/ipv4.ts
function validateDottedDecimalIPv4Input(value) {
if (!value) return "IP address is required for custom bind mode";
const parts = value.trim().split(".");
if (parts.length !== 4) return "Invalid IPv4 address (e.g., 192.168.1.100)";
if (parts.every((part) => {
const n = parseInt(part, 10);
return !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n);
})) return;
return "Invalid IPv4 address (each octet must be 0-255)";
}
function validateIPv4AddressInput(value) {
return validateDottedDecimalIPv4Input(value);
}
//#endregion
export { TAILSCALE_MISSING_BIN_NOTE_LINES as i, TAILSCALE_DOCS_LINES as n, TAILSCALE_EXPOSURE_OPTIONS as r, validateIPv4AddressInput as t };