mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 11:55:47 -06:00
refactor: consolidate coercion contracts (#122458)
* refactor: consolidate coercion contracts Centralize exact string, record, numeric, date, Boolean, argument, and structured-error coercions while preserving call-site semantics. Migrate canonical-name collisions and deprecated internal SDK bypasses, deleting 55 net production/tooling lines. Expand declaration ownership enforcement to 101 allowed helpers and add a narrow export-completeness audit. * fix: preserve standalone script coercions Keep copied Control UI tooling self-contained and retain the trusted release harness module-relative source seam when the harness runs against an old target cwd.
This commit is contained in:
committed by
GitHub
parent
66fe424590
commit
b080dd1e76
@@ -715,17 +715,11 @@ function mergeJsonObjects(left: JsonObject, right: JsonObject): JsonObject {
|
||||
for (const [key, value] of Object.entries(right)) {
|
||||
const existing = merged[key];
|
||||
merged[key] =
|
||||
isPlainJsonObject(existing) && isPlainJsonObject(value)
|
||||
? mergeJsonObjects(existing, value)
|
||||
: value;
|
||||
isJsonObject(existing) && isJsonObject(value) ? mergeJsonObjects(existing, value) : value;
|
||||
}
|
||||
return merged;
|
||||
}
|
||||
|
||||
function isPlainJsonObject(value: JsonValue | undefined): value is JsonObject {
|
||||
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
||||
}
|
||||
|
||||
function fingerprintJson(value: JsonValue): string {
|
||||
return crypto.createHash("sha256").update(stableStringify(value)).digest("hex");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user