So to recap then:
We like the idea of having a spy stay in the city if they spend enough silver to get the first report.
There should be a daily/hourly cost for the spy to remain, maybe 20 coins per hour and taken direct from your cave.
The cost of subsequent reports needs to be about 25,000 coins, the same as the max amount of resources you can hold in a warehouse and is deducted from your cave at each report request.
There should be a percentage chance the spy gets caught every time a report is requested, maybe 10 to 30% chance. This sould be added to a total each time and maybe increase by 0.5% each hour so that the spy self terminates at 100% or 200 hours and/or at a preset 'catch spy' level. A report should go to the owner of the city informing them that a spy was caught and the sender of the spy.
Maybe some form of sabotage, reducing resouces, slowing troop/navy build times or lowering of building levels.
The ability, with a premium account, to send silver direct to a cave from any city, without having to add the silver to the cave and work the same as sending resources to a city and be implemented on the cave screen in the admin screens.
There also needs to be a way of detecting that you have a spy resident and terminating the spy. Maybe something along the lines of self spy/check for spy for a cost of 20 to 30,000 coins.