oclaw/openclaw/test/helpers/gateway/android-node-capabilities-policy-config.ts
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

35 lines
1.1 KiB
TypeScript

import type { OpenClawConfig } from "../../../src/config/config.js";
function asRecord(value: unknown): Record<string, unknown> {
return typeof value === "object" && value !== null ? (value as Record<string, unknown>) : {};
}
export function unwrapRemoteConfigSnapshot(raw: unknown): OpenClawConfig {
const rawObj = asRecord(raw);
const resolved = asRecord(rawObj.resolved);
if (Object.keys(resolved).length > 0) {
return resolved as OpenClawConfig;
}
const wrapped = asRecord(rawObj.config);
if (Object.keys(wrapped).length > 0) {
return wrapped as OpenClawConfig;
}
const legacyPayload = asRecord(rawObj.payload);
const legacyResolved = asRecord(legacyPayload.resolved);
if (Object.keys(legacyResolved).length > 0) {
return legacyResolved as OpenClawConfig;
}
const legacyConfig = asRecord(legacyPayload.config);
if (Object.keys(legacyConfig).length > 0) {
return legacyConfig as OpenClawConfig;
}
if (Object.keys(rawObj).length > 0 && !Object.prototype.hasOwnProperty.call(rawObj, "payload")) {
return rawObj as OpenClawConfig;
}
throw new Error("remote gateway config.get returned empty config payload");
}