From a41e28f6ded172dd974fb3986354f18598bdd68a Mon Sep 17 00:00:00 2001 From: iamjr15 Date: Thu, 13 Aug 2026 16:13:06 +0530 Subject: [PATCH] fix(agent): normalize R2 range metadata Use numeric property guards for the runtime R2 range shape. Cloudflare includes optional keys with undefined values, so structural union checks cannot safely discriminate suffix and offset ranges. --- apps/agent-worker/src/agent-api-system-routes.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/agent-worker/src/agent-api-system-routes.ts b/apps/agent-worker/src/agent-api-system-routes.ts index e9d1f255..56a31f98 100644 --- a/apps/agent-worker/src/agent-api-system-routes.ts +++ b/apps/agent-worker/src/agent-api-system-routes.ts @@ -204,13 +204,14 @@ function resolveOutputRange( objectSize: number, ): { end: number; length: number; offset: number } | undefined { if (!range) return undefined; - if ("suffix" in range) { + if ("suffix" in range && typeof range.suffix === "number") { const length = Math.min(range.suffix, objectSize); const offset = objectSize - length; return { end: objectSize - 1, length, offset }; } - const offset = range.offset ?? 0; - const boundedLength = Math.min(range.length ?? objectSize - offset, objectSize - offset); + const offset = "offset" in range && typeof range.offset === "number" ? range.offset : 0; + const length = "length" in range && typeof range.length === "number" ? range.length : undefined; + const boundedLength = Math.min(length ?? objectSize - offset, objectSize - offset); return { end: offset + boundedLength - 1, length: boundedLength, offset }; }