Having asked the same question of developers, it's a combination of cost and code. Many office buildings are old, with tiny windows surrounded by load-bearing walls. They're also laid out with an office, not home, in mind. (Think: plumbing.) This combination means extensive renovation, retrofitting and–if you find a previously-unseen problem–rebuilding.
That said, it's New York City. My first two apartments were illegally subdivided and subletted, the first having no window. There are people who will happily take an apartment with a tiny (or non-existent) window in exchange for cheaper rent. We just need to update the code to remove aesthetic requirements while ensuring that doesn't mean skimping on safety.
Just a nit-pick: older buildings with windows and load-bearing walls are actually better candidates for residential conversion than newer buildings with glass curtain walls and structural columns. [https://www.nytimes.com/interactive/2023/03/11/upshot/office...]
There are different maintainers for different models, but as far as I can tell they're all pretty similar: https://github.com/search?q=yi%20hack&type=repositories
Edit to add they work pretty well with Home Assistant with this HACS integration: https://github.com/roleoroleo/yi-hack_ha_integration