export function asRecord(value: unknown): Record | null { if (typeof value !== "object" || value === null) { return null; } return value as Record; } function isInteger(value: unknown): value is number { return typeof value === "number" && Number.isInteger(value); } function asRecordWithStringField(value: unknown, field: string): Record | null { const obj = asRecord(value); if (obj === null || typeof obj[field] !== "string") { return null; } return obj; } function isLineRange( value: unknown, options: { requirePositive?: boolean } = {} ): value is { start: number; end: number } { const obj = asRecord(value); if (obj === null || !isInteger(obj.start) || !isInteger(obj.end) || obj.end < obj.start) { return false; } if (options.requirePositive && (obj.start <= 0 || obj.end <= 0)) { return false; } return true; } export function isCodeLocation( value: unknown, options: { requirePositive?: boolean } = {} ): value is { absolute_file_path: string; line_range: { start: number; end: number }; } { const obj = asRecordWithStringField(value, "absolute_file_path"); return obj !== null && isLineRange(obj.line_range, options); }