Yeah that is basically how it works now, and I think I'm gonna do it! (Discussed a little bit in another comment on this thread.) Player's would have to host their own AI but it'd be as simple as sending over the exact same game data that the browser receives and asking for/parsing a response.
What's tricky that I forgot to mention in the other comment is that more information is acquired as moves uncover fog-of-war tiles. So I've been sending a new request every unit-move, rather than once per player-turn. This is fine as the data being exchanged is so small and fast, but just something people might need to account for. I suppose I can also quickly whip up a system to grab all sequential moves from an AI service when fog of war is disabled and save some network traffic.
What's tricky that I forgot to mention in the other comment is that more information is acquired as moves uncover fog-of-war tiles. So I've been sending a new request every unit-move, rather than once per player-turn. This is fine as the data being exchanged is so small and fast, but just something people might need to account for. I suppose I can also quickly whip up a system to grab all sequential moves from an AI service when fog of war is disabled and save some network traffic.