export function guardCancel<T>(value: T | symbol, runtime: RuntimeEnv): T { if (isCancel(value)) {
cancel(stylePromptTitle("Setup cancelled.") ?? "Setup cancelled.");
runtime.exit(0); thrownew Error("unreachable");
} return value;
}
export function summarizeExistingConfig(config: OpenClawConfig): string { const rows: string[] = []; const defaults = config.agents?.defaults; if (defaults?.workspace) {
rows.push(shortenHomeInString(`workspace: ${defaults.workspace}`));
} if (defaults?.model) { const model = resolveAgentModelPrimaryValue(defaults.model); if (model) {
rows.push(shortenHomeInString(`model: ${model}`));
}
} if (config.gateway?.mode) {
rows.push(shortenHomeInString(`gateway.mode: ${config.gateway.mode}`));
} if (typeof config.gateway?.port === "number") {
rows.push(shortenHomeInString(`gateway.port: ${config.gateway.port}`));
} if (config.gateway?.bind) {
rows.push(shortenHomeInString(`gateway.bind: ${config.gateway.bind}`));
} if (config.gateway?.remote?.url) {
rows.push(shortenHomeInString(`gateway.remote.url: ${config.gateway.remote.url}`));
} if (config.skills?.install?.nodeManager) {
rows.push(shortenHomeInString(`skills.nodeManager: ${config.skills.install.nodeManager}`));
} return rows.length ? rows.join("\n") : "No key settings detected.";
}
export function normalizeGatewayTokenInput(value: unknown): string { if (typeof value !== "string") { return"";
} const trimmed = value.trim(); // Reject the literal string "undefined" — a common bug when JS undefined // gets coerced to a string via template literals or String(undefined). if (trimmed === "undefined" || trimmed === "null") { return"";
} return trimmed;
}
export function validateGatewayPasswordInput(value: unknown): string | undefined { if (typeof value !== "string") { return"Required";
} const trimmed = value.trim(); if (!trimmed) { return"Required";
} if (trimmed === "undefined" || trimmed === "null") { return'Cannot be the literal string "undefined" or "null"';
} return undefined;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.